如何解决GitHub Workflow中自定义Docker镜像无法连接docker.sock的问题?
问题:GitHub Actions中使用自定义镜像调用Docker时的连接问题
我在GitHub工作流中使用自定义Docker镜像,目标是构建并推送镜像至GCR。选择自定义镜像是因为构建过程需要安装大量前置依赖,想以此加速CI工作流,同时将Dockerfile作为构建环境需求的清单。
目前遇到的问题:调用Docker时出现连接docker.sock的权限拒绝错误。本地环境下可以通过挂载主机docker.sock解决,但在GitHub Runner中无法这么做(推测是出于安全限制),且尝试将用户加入docker组也没有效果。
现寻求以下帮助:
- 解决该问题的可行方案
- 若GitHub Actions不适用,推荐更合适的CI工具
附相关文件及信息
最小化Dockerfile
FROM ubuntu:latest RUN apt-get update && \ apt-get install -y \ curl \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN curl -fsSL https://get.docker.com -o get-docker.sh RUN sh get-docker.sh
GitHub Workflow配置文件
name: Deploy to staging on: push: tags: - '*' jobs: deploy: runs-on: ubuntu-latest container: image: eu.gcr.io/my-image credentials: username: _json_key password: ${{ secrets.TOKEN }} env: ... steps: - name: call docker run: docker images
错误提示信息
本地复现错误时执行docker images,输出如下:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
本地可行的临时解决命令
docker run -it -v /var/run/docker.sock:/var/run/docker.sock my-image-name
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

