testcontainers-elixir icon indicating copy to clipboard operation
testcontainers-elixir copied to clipboard

Podman support?

Open kianmeng opened this issue 2 years ago • 7 comments

While running the test, I have noticed this library only support Docker. Are there any plans to support https://github.com/containers/podman?

$ mix test
Compiling 34 files (.ex)
** (EXIT from #PID<0.99.0>) an exception was raised:
    ** (CaseClauseError) no case clause matching: {:error, [docker_socket_path: :docker_socket_not_found]}
        (testcontainers 1.6.0) lib/connection/connection.ex:34: Testcontainers.Connection.docker_base_url/0
        (testcontainers 1.6.0) lib/connection/connection.ex:16: Testcontainers.Connection.get_connection/1
        (testcontainers 1.6.0) lib/testcontainers.ex:33: Testcontainers.setup/1
        (stdlib 5.2) gen_server.erl:980: :gen_server.init_it/2
        (stdlib 5.2) gen_server.erl:935: :gen_server.init_it/6
        (stdlib 5.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3

kianmeng avatar Jan 10 '24 18:01 kianmeng

My immediate thought is that this should "just work". But i suppose it suffers from the same issue as the other implementations where you have to define the docker_host env var to point to podman socket.

jarlah avatar Jan 12 '24 14:01 jarlah

@kianmeng What happens if you configure Podman as proposed by @jarlah? In general, all Testcontainers libraries always expect a Docker Engine API, that's is against what we integrate and if things fail, this would be an upstream issue with Podman behaving differently than Docker.

kiview avatar Jun 27 '24 07:06 kiview

@kiview Not working for me.

ENV:

elixir          1.16.3-otp-26   /tmp/testcontainers-elixir/.tool-versions
erlang          26.2.5          /tmp/elixir/testcontainers-elixir/.tool-versions

Steps to reproduce:

cd /tmp
git clone https://github.com/testcontainers/testcontainers-elixir
cd testcontainers-elixir
asdf local elixir 1.16.3-otp-26
asdf local erlang 26.2.5
mix deps.get
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
mix test

Result:

...
01:01:35.747 [warning] Using docker host url: http+unix://%2Fvar%2Frun%2Fdocker.sock/v1.41

01:01:46.916 [warning] Not running in docker environment, using localhost

01:01:46.916 [warning] Testcontainers initialized
.....
01:01:47.072 [warning] Using docker host url: http+unix://%2Fvar%2Frun%2Fdocker.sock/v1.41
.............
01:01:52.574 [warning] Not running in docker environment, using localhost

01:01:52.574 [warning] Testcontainers initialized

  1) test can start and stop generic container (Testcontainers.GenericContainerTest)                                                      
     test/generic_container_test.exs:4                                                                                                    
     ** (ExUnit.TimeoutError) test timed out after 60000ms. You can change the timeout:                                                   
                                                                     
       1. per test by setting "@tag timeout: x" (accepts :infinity)                                                                       
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)
       3. globally via "ExUnit.start(timeout: x)" configuration
       4. by running "mix test --timeout x" which sets timeout
       5. or by running "mix test --trace" which sets timeout to infinity
          (useful when using IEx.pry/0)

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).
     
     code: assert {:ok, container} = Testcontainers.start_container(config)
     stacktrace:
       (stdlib 5.2.3) gen.erl:259: :gen.do_call/4
       (elixir 1.16.3) lib/gen_server.ex:1111: GenServer.call/3
       test/generic_container_test.exs:6: (test)
       (ex_unit 1.16.3) lib/ex_unit/runner.ex:472: ExUnit.Runner.exec_test/2
       (stdlib 5.2.3) timer.erl:270: :timer.tc/2
       (ex_unit 1.16.3) lib/ex_unit/runner.ex:394: anonymous fn/6 in ExUnit.Runner.spawn_test_monitor/4
...

kianmeng avatar Jun 28 '24 17:06 kianmeng

I think it might be test_docker_host that messes things up. It tries to do a ping to test the connection. So it would never work with podman I guess, because it doesn't work that way. I would need, or someone else, to look into how the docker host is tested in the strategy implementations. I will look into it in due time, but this could be a good hint for someone else to start working on, the method test_docker_host

jarlah avatar Jul 01 '24 19:07 jarlah

adding good first issue, since this is a localized issue and can be solved in isolation.

jarlah avatar Jul 01 '24 20:07 jarlah

Should port this

https://github.com/testcontainers/testcontainers-go/blob/main/internal/core/docker_rootless.go

i suppose we are only implementing the stuff we can see in

https://github.com/testcontainers/testcontainers-go/blob/main/internal/core/docker_host.go

jarlah avatar Jul 11 '24 17:07 jarlah

we only support docker host urls that can reply to /_ping which propably doesnt include rootless podman urls

jarlah avatar Jul 11 '24 17:07 jarlah

@kianmeng can you test again now? i have implemented support for rootless docker. use {:testcontainers, "~> 1.11", only: [:dev, :test], runtime: false}

jarlah avatar Nov 10 '24 19:11 jarlah

In my nixos environment i have a DOCKER_HOST env var pointing to the rootless docker socket. You need to make a similar for podman.

jarlah avatar Nov 10 '24 19:11 jarlah

I will try to test with podman too. At work. Since i use redhat with podman there

jarlah avatar Nov 11 '24 05:11 jarlah

it still doesnt work on podman

$ echo $DOCKER_HOST unix:///run/user/1199047593/podman/podman.sock

$ mix testcontainers.test

12:08:02.820 [error] backend port not found: :inotifywait

** (EXIT from #PID<0.93.0>) {:error, {:http_error, 400}}

not a good error message tbh, but i will look into it .. because it works perfectly on normal docker setup both rootless and root

jarlah avatar Nov 11 '24 11:11 jarlah

a myriad of failures ..

  1. "X-Registry-Auth" is not supported/working. So removed it temporarely, enabling tests to continue

  2. exec start not working aka command wait strategy with commands in container

** (MatchError) no match of right hand side value: {:error, %Tesla.Env{method: :post, url: "http+unix://%2Frun%2Fuser%2F1199047593%2Fpodman%2Fpodman.sock/v1.41/exec/c822f854506ff8ed415bf30cc72e2b1fa8053c3b3760c8cbeed2c6be3edb7e92/start", query: [], headers: [{"api-version", "1.41"}, {"content-type", "application/json"}, {"libpod-api-version", "4.9.4-rhel"}, {"server", "Libpod/4.9.4-rhel (linux)"}, {"x-reference-id", "0xc000c6e9b0"}, {"date", "Mon, 11 Nov 2024 13:37:55 GMT"}, {"content-length", "120"}], body: "{"cause":"invalid argument","message":"must provide at least one stream to attach to: invalid argument","response":500}\n", status: 500, opts: [], module: Tesla, client: %Tesla.Client{fun: nil, pre: [{Tesla.Middleware.BaseUrl, :call, ["http+unix://%2Frun%2Fuser%2F1199047593%2Fpodman%2Fpodman.sock/v1.41"]}, {Tesla.Middleware.Headers, :call, [[{"user-agent", "tc-elixir/1.11.3"}]]}, {Tesla.Middleware.EncodeJson, :call, [[engine: Jason]]}], post: [], adapter: {Tesla.Adapter.Hackney, :call, [[recv_timeout: 300000]]}}}, %Testcontainers.CommandWaitStrategy{command: ["redis-cli", "PING"], timeout: 60000, retry_delay: 200}}

  1. Issue with port binding

    ** (MatchError) no match of right hand side value: {:error, {:failed_to_start_container, %DockerEngineAPI.Model.ErrorResponse{message: "rootlessport listen tcp 0.0.0.0:2181: bind: address already in use"}}}

jarlah avatar Nov 11 '24 13:11 jarlah

but hey

82 tests, 12 failures

it works in general :P

jarlah avatar Nov 11 '24 13:11 jarlah

yes! Made a workflow :D <3

https://github.com/testcontainers/testcontainers-elixir/actions/runs/11877573430/job/33097220320

now the work on fixing the podman rootless issues can be started

jarlah avatar Nov 17 '24 09:11 jarlah

here is the workflow https://github.com/testcontainers/testcontainers-elixir/blob/main/.github/workflows/rootless-podman.yaml :)

jarlah avatar Nov 17 '24 09:11 jarlah

ill be damned :D it was just bad input to container start exec endpoint. Its fixed now in main. See podman workflow

jarlah avatar Nov 17 '24 10:11 jarlah

@kianmeng you can try it out now on latest release. It should work. :)

jarlah avatar Nov 17 '24 11:11 jarlah

@jarlah Sure, my result:

ENVs:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble

$ asdf current
elixir          1.17-otp-25     /tmp/testcontainers-elixir/.tool-versions
erlang          25.3.2.13       /tmp/testcontainers-elixir/.tool-versions

$ podman -v
podman version 4.9.3

Preparation steps:

cd /tmp
git clone https://github.com/testcontainers/testcontainers-elixir
cd testcontainers-elixir
asdf install
mix deps.get

Test results:

$ mix test                                                                                    
Running ExUnit with seed: 982673, max_cases: 24                                                                                           
                                                                                                                                          
..............................                                                                                                            

  1) test upload file (Testcontainers.Container.PutFileTest)                
     test/container/put_file_test.exs:8                                                                                                                 
     ** (ExUnit.TimeoutError) test timed out after 60000ms. You can change the timeout:                                                                                                                                  
                                                                            
       1. per test by setting "@tag timeout: x" (accepts :infinity)                                                                                                      
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)                                                                                                                                         
       3. globally via "ExUnit.start(timeout: x)" configuration                                             
       4. by running "mix test --timeout x" which sets timeout                                                                                                           
       5. or by running "mix test --trace" which sets timeout to infinity                                                                                                                                                
          (useful when using IEx.pry/0)                                                                     
                                                                                               
     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).                                                                                                                                     
                                                                                                                                                                                                                         
     stacktrace:                                                                                                                                                                                                         
       (stdlib 4.3.1.4) gen.erl:256: :gen.do_call/4                                                                                                                                                                      
       (elixir 1.17.3) lib/gen_server.ex:1125: GenServer.call/3                                                                                                                                                          
       test/container/put_file_test.exs:6: Testcontainers.Container.PutFileTest.__ex_unit_setup_0/1                                                                                                                      
       test/container/put_file_test.exs:1: Testcontainers.Container.PutFileTest.__ex_unit__/2                                                                                                                            
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:478: ExUnit.Runner.exec_test_setup/2                                                                                                                                       
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:411: anonymous fn/2 in ExUnit.Runner.spawn_test_monitor/4                                                                                                                  
       (stdlib 4.3.1.4) timer.erl:235: :timer.tc/1                                                          
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:407: anonymous fn/6 in ExUnit.Runner.spawn_test_monitor/4                                                                                                                  

  2) test can start and stop generic container with network mode set to host (Testcontainers.GenericContainerTest)                                                                                                       
     test/generic_container_test.exs:16                                                                     
     ** (ExUnit.TimeoutError) test timed out after 60000ms. You can change the timeout:                                                                                                                                  

       1. per test by setting "@tag timeout: x" (accepts :infinity)                                         
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)                                                                                                                                         
       3. globally via "ExUnit.start(timeout: x)" configuration                                             
       4. by running "mix test --timeout x" which sets timeout                                              
       5. or by running "mix test --trace" which sets timeout to infinity                                                                                                                                                
          (useful when using IEx.pry/0)                                                                     

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).                                                                                                                                     
                                                      
     code: assert {:ok, container} = Testcontainers.start_container(config)                                                                                                                                              
     stacktrace:                                      
       (stdlib 4.3.1.4) gen.erl:256: :gen.do_call/4                                                         
       (elixir 1.17.3) lib/gen_server.ex:1125: GenServer.call/3                                             
       test/generic_container_test.exs:21: (test)                                                           
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:485: ExUnit.Runner.exec_test/2                                                                                                                                             
       (stdlib 4.3.1.4) timer.erl:235: :timer.tc/1                                                          
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:407: anonymous fn/6 in ExUnit.Runner.spawn_test_monitor/4

  3) test with default configuration provides a ready-to-use redis container (Testcontainers.Container.RedisContainerTest)                                                                                               
     test/container/redis_container_test.exs:15                                                             
     ** (ExUnit.TimeoutError) test timed out after 120000ms. You can change the timeout:                                                                                                                                 

       1. per test by setting "@tag timeout: x" (accepts :infinity)                                         
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)                                                                                                                                         
       3. globally via "ExUnit.start(timeout: x)" configuration                                             
       4. by running "mix test --timeout x" which sets timeout                                              
       5. or by running "mix test --trace" which sets timeout to infinity                                                                                                                                                
          (useful when using IEx.pry/0)                                                                     

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).                                                                                                                                     
                                                      
     stacktrace:                                      
       (stdlib 4.3.1.4) gen.erl:256: :gen.do_call/4                                                         
       (elixir 1.17.3) lib/gen_server.ex:1125: GenServer.call/3                                             
       test/container/redis_container_test.exs:13: Testcontainers.Container.RedisContainerTest.__ex_unit_setup_0_0/1                                                                                                     
       Testcontainers.Container.RedisContainerTest.__ex_unit_describe_0/1                                                                                                                                                
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:478: ExUnit.Runner.exec_test_setup/2                                                                                                                                       
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:411: anonymous fn/2 in ExUnit.Runner.spawn_test_monitor/4                                                                                                                  
       (stdlib 4.3.1.4) timer.erl:235: :timer.tc/1                                                          
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:407: anonymous fn/6 in ExUnit.Runner.spawn_test_monitor/4                                                                                                                  



  4) test can start and stop generic container (Testcontainers.GenericContainerTest)                                                                                                                                     
     test/generic_container_test.exs:7                                                                      
     ** (ExUnit.TimeoutError) test timed out after 60000ms. You can change the timeout:                                                                                                                                  

       1. per test by setting "@tag timeout: x" (accepts :infinity)                                         
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)                                                                                                                                         
       3. globally via "ExUnit.start(timeout: x)" configuration                                             
       4. by running "mix test --timeout x" which sets timeout                                              
       5. or by running "mix test --trace" which sets timeout to infinity                                                                                                                                                
          (useful when using IEx.pry/0)                                                                     

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).                                                                                                                                     
                                                      
     code: assert {:ok, container} = Testcontainers.start_container(config)                                                                                                                                              
     stacktrace:                                      
       (stdlib 4.3.1.4) gen.erl:256: :gen.do_call/4                                                         
       (elixir 1.17.3) lib/gen_server.ex:1125: GenServer.call/3                                             
       test/generic_container_test.exs:9: (test)                                                            
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:485: ExUnit.Runner.exec_test/2                                                                                                                                             
       (stdlib 4.3.1.4) timer.erl:235: :timer.tc/1                                                          
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:407: anonymous fn/6 in ExUnit.Runner.spawn_test_monitor/4

  5) test with external zookeeper provides a ready-to-use kafka container (Testcontainers.Container.KafkaContainerTest)
     test/container/kafka_container_test.exs:231
     ** (ExUnit.TimeoutError) test timed out after 200000ms. You can change the timeout:

       1. per test by setting "@tag timeout: x" (accepts :infinity)
       2. per test module by setting "@moduletag timeout: x" (accepts :infinity)
       3. globally via "ExUnit.start(timeout: x)" configuration
       4. by running "mix test --timeout x" which sets timeout
       5. or by running "mix test --trace" which sets timeout to infinity
          (useful when using IEx.pry/0)

     where "x" is the timeout given as integer in milliseconds (defaults to 60_000).
     
     code: {:ok, zookeeper} = start_external_zookeeper()
     stacktrace:
       (stdlib 4.3.1.4) gen.erl:256: :gen.do_call/4
       (elixir 1.17.3) lib/gen_server.ex:1125: GenServer.call/3
       test/container/kafka_container_test.exs:302: Testcontainers.Container.KafkaContainerTest.start_external_zookeeper/0
       test/container/kafka_container_test.exs:232: (test)
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:485: ExUnit.Runner.exec_test/2
       (stdlib 4.3.1.4) timer.erl:235: :timer.tc/1
       (ex_unit 1.17.3) lib/ex_unit/runner.ex:407: anonymous fn/6 in ExUnit.Runner.spawn_test_monitor/4
...

kianmeng avatar Nov 17 '24 13:11 kianmeng

Do you have a slow computer ? With less than four cores and or less than 8gb ram ?

I see you get test timeouts now. And no issues with actually running the tests. Which means

1 it finds the docker host or docker socket 2 it successfully creates and starts the container 3 but the startup or speed of these containers is too slow

But first if you can share rough details of pc/mac setup we can get a better understanding

jarlah avatar Nov 17 '24 14:11 jarlah

Doubt it relates to the hardware speed. Timeout may indicate that it can't reach the Docker daemon?

I retried using the following settings but still the same result. Maybe DOCKER_HOST was not found?

export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock

file $XDG_RUNTIME_DIR/podman/podman.sock
/run/user/1000/podman/podman.sock: cannot open `/run/user/1000/podman/podman.sock' (No such file or directory)

mix test

kianmeng avatar Nov 17 '24 14:11 kianmeng

i get same behaviour with the file program. in my environment, nixos, i have configured docker with rootless, and the env var is automatically injected. I will see if i can log the strategy that was selected.

jarlah avatar Nov 17 '24 14:11 jarlah

can you show me output of docker context inspect | jq ?

$ docker context inspect | jq                                                  
[
  {
    "Name": "default",
    "Metadata": {},
    "Endpoints": {
      "docker": {
        "Host": "unix:///run/user/1000/docker.sock",
        "SkipTLSVerify": false
      }
    },
    "TLSMaterial": {},
    "Storage": {
      "MetadataPath": "<IN MEMORY>",
      "TLSPath": "<IN MEMORY>"
    }
  }
]

jarlah avatar Nov 17 '24 14:11 jarlah

i get

$ file $XDG_RUNTIME_DIR/docker.sock
/run/user/1000/docker.sock: sticky, socket

jarlah avatar Nov 17 '24 14:11 jarlah

doesnt mean anything that im using docker, works the same with podman, since the sock file is a file in both cases

jarlah avatar Nov 17 '24 14:11 jarlah

$ docker context inspect | jq 
[
  {
    "Name": "default",
    "Metadata": {},
    "Endpoints": {
      "docker": {
        "Host": "unix:///run/user/1000/podman/podman.sock",
        "SkipTLSVerify": false
      }
    },
    "TLSMaterial": {},
    "Storage": {
      "MetadataPath": "<IN MEMORY>",
      "TLSPath": "<IN MEMORY>"
    }
  }
]

kianmeng avatar Nov 17 '24 14:11 kianmeng

I managed to set up the file through from what I have read at https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md#socket-activation-of-the-api-service:

You'll need to enable and start the Podman socker manually, it will not start by default:

$ systemctl --user start podman.socket
$ ls $XDG_RUNTIME_DIR/podman/podman.sock
/run/user/1000/podman/podman.sock=

However, running mix test is just way too slow and stuck infinitely:

$ mix test --trace
Running ExUnit with seed: 461102, max_cases: 1


TestcontainersTest [test/testcontainers_test.exs]
  * test will cleanup containers [L#10]
...

kianmeng avatar Nov 17 '24 14:11 kianmeng

I can get test to run if I follows the same commands in https://github.com/testcontainers/testcontainers-elixir/blob/main/.github/workflows/rootless-podman.yaml

But again, it seems rather slow and stuck at some tests:

$ export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
$ MIX_ENV=test mix citest --exclude needs_root --trace
Cover compiling modules ...                                                                                                               
Running ExUnit with seed: 716628, max_cases: 1                                                                                            
Excluding tags: [:flaky, :needs_root]                                                                                                     
                                                                     

TestcontainersTest [test/testcontainers_test.exs]                                                                                         
  * test will cleanup containers (excluded) [L#10]

Testcontainers.Connection.DockerHostStrategy.DockerSocketPathTest [test/connection/docker_host_strategy/docker_socket_path_test.exs]
  * test DockerSocketPathStrategy should return error if docker socket does not exist (37.9ms) [L#16]
  * test DockerSocketPathStrategy should return :enoent if docker socket exists but is not a real socket (0.4ms) [L#8]

Testcontainers.ContainerTest [test/container_test.exs]
  * test valid_image/1 return config when image matches a custom regular expression (0.01ms) [L#176]
  * test valid_image!/1 raises error when image isn't valid (30.0ms) [L#196]
  * test with_exposed_port/2 adds an exposed port to the container (0.01ms) [L#32]
  * test with_check_image/2 compiles a string into a valid regex (0.01ms) [L#126]
  * test valid_image/1 return config when check image isn't set (0.01ms) [L#154]
  * test with_exposed_port/2 removes duplicate exposed ports (0.00ms) [L#40]
  * test with_check_image/2 raises Regex.CompileError when string can't be compiled to a valid regex (7.8ms) [L#135]
  * test with_fixed_port/3 removes and overwrites duplicate fixed ports (0.01ms) [L#78]
  * test mapped_port/2 returns the mapped host port for the given exposed port (0.00ms) [L#90]
  * test hash returns the same hash for the same container (11.8ms) [L#19]
  * test valid_image/1 return config when image contains the prefix (0.02ms) [L#168]
  * test with_network_mode/2 returns nil if the network mode is not set (0.00ms) [L#107]
  * test valid_image/1 return config when image matches default string (0.01ms) [L#160]
  * test with_exposed_ports/2 removes duplicate exposed ports (0.00ms) [L#59]
  * test with_exposed_ports/2 adds multiple exposed ports to the container (0.00ms) [L#51]
  * test valid_image/1 return error when image doesn't match default one (0.01ms) [L#184]
  * test mapped_port/2 returns nil if the exposed port is not found (0.00ms) [L#95]
  * test with_check_image/2 accepts a regex (0.00ms) [L#143]
  * test with_network_mode/2 returns the network host type (0.00ms) [L#102]
  * test with_fixed_port/3 adds a fixed exposed port to the container (0.00ms) [L#70]
  * test with_auth/3 sets the authentication token for the container (0.01ms) [L#114]
  * test with reuse sets reuse to true (0.00ms) [L#8]

Testcontainers.Container.CassandraContainerTest [test/container/cassandra_container_test.exs]
  * test cassandra can create and start [L#22]

Hence I assumed this works, just maybe the test stuck at creating some containers while downloading the Docker images?

kianmeng avatar Nov 17 '24 15:11 kianmeng

Its time to bring in the guns. I will install virtualbox with ubuntu. Ill get back to you ...

jarlah avatar Nov 17 '24 15:11 jarlah

installed Ubuntu 24 LTS on virtualbox with 2 of the machines cores. 8-9 gb ram. Took ages, but its nice to test on slow hardware.

Found a bug in docker socket strategy code. So the current version on master now uses XDG_RUNTIME_DIR properly.

However, you said you exported DOCKER_HOST with XDG_RUNTIME_DIR. Well i did not and i got it to work inside virtualbox. Its hellish slow but it tugs along.

You could test latest version on master which solves the problematic buggy code. But another advantage of using the latest commit on main is that its now printing to stdout what socket path and docker url it uses.

jarlah avatar Nov 17 '24 20:11 jarlah

one test timed out naturally due to the slow nature of the guest OS

jarlah avatar Nov 17 '24 20:11 jarlah