-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Podman support? #73
Comments
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. |
@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:
|
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 |
adding good first issue, since this is a localized issue and can be solved in isolation. |
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 |
we only support docker host urls that can reply to /_ping which propably doesnt include rootless podman urls |
@kianmeng can you test again now? i have implemented support for rootless docker. |
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. |
I will try to test with podman too. At work. Since i use redhat with podman there |
it still doesnt work on podman $ echo $DOCKER_HOST $ 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 |
a myriad of failures ..
** (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}}
|
but hey 82 tests, 12 failures it works in general :P |
While running the test, I have noticed this library only support Docker. Are there any plans to support https://github.com/containers/podman?
The text was updated successfully, but these errors were encountered: