Skip to content
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

Linux support for access to docker.socket #1798

Open
andrew-pickin-epi opened this issue May 10, 2023 · 4 comments
Open

Linux support for access to docker.socket #1798

andrew-pickin-epi opened this issue May 10, 2023 · 4 comments
Labels
kind/feature-request New feature or request

Comments

@andrew-pickin-epi
Copy link

Act version

0.2.45-10

Feature description

Unless by some chance the gid of docker group on host machine and runner image coincide the docker.socket will give permissions denied error when attempting to run docker build or similar command.

There are ways round this,

  • chown 1001 /var/run/docker.sock
  • chmod a+rw /var/run/docker.sock

But these might conflict with other needs, not survive a reboot.

It should be possible to read the gid of /var/run/docker.sock on startup and add this value to the invocation of the runner image. (See docker run --group-add).

@fabiobsantosprogrow
Copy link

Got the same error today!
After searching one hour on issues and stack overflow found this post.
I have the same issue when using docker compose too but docker-compose was a optional as dependency.

@alexjball
Copy link

In my setup, chown and chmoding the docker socket changes permissions on both the host and container, breaking docker on my host.

Instead, I was able to use --container-options to pass in --group-add to workflow containers, which does the trick:

act --container-options "--group-add $(stat -c %g /var/run/docker.sock)" ...

@mahula
Copy link

mahula commented May 6, 2024

act --container-options "--group-add $(stat -c %g /var/run/docker.sock)"

Thank you, that solved the docker access issue.

@jonathanlinat
Copy link

jonathanlinat commented Jun 21, 2024

In my setup, chown and chmoding the docker socket changes permissions on both the host and container, breaking docker on my host.

Instead, I was able to use --container-options to pass in --group-add to workflow containers, which does the trick:

act --container-options "--group-add $(stat -c %g /var/run/docker.sock)" ...

It still does not work, unfortunately.

jonathan@work-pc:~/Projects/Professional/my-project$ gh act --container-options "--group-add $(stat -c %g /var/run/docker.sock)" pull_request
INFO[0000] Using docker host 'unix:///var/run/docker.sock', and daemon socket 'unix:///var/run/docker.sock' 
[Continuous Deployment - Content Migrations/Set the environment outputs] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Deployment - Docs/Set the environment outputs              ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Deployment - Storybook/Set the environment outputs         ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Integration/Lint the source code                           ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Deployment - Storefront/Set the environment outputs        ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Deployment - Content Migrations/Set the environment outputs]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Continuous Deployment - Terraform/Set the environment outputs         ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Integration/Lint the source code                           ]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Continuous Integration/Unit test the packages                         ] 🚀  Start image=catthehacker/ubuntu:act-latest
[Continuous Deployment - Docs/Set the environment outputs              ]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Continuous Deployment - Storybook/Set the environment outputs         ]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Continuous Integration/Unit test the packages                         ]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Continuous Deployment - Storefront/Set the environment outputs        ]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Continuous Deployment - Terraform/Set the environment outputs         ]   🐳  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
Error: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=catthehacker%2Fubuntu&tag=act-latest": dial unix /var/run/docker.sock: connect: permission denied

Update

It worked using the following command instead:

gh act -P ubuntu-latest=-self-hosted

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature-request New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants