[英]How to use docker inside Alpine/Any docker image in gitlab ci
我想使用位于其他私有存储库中的 dockerfile 构建和测试我的应用程序。 为此,我使用了 Alpine 官方 docker 映像,在其中运行 bash 脚本来克隆我的私人仓库并运行 docker 来构建 docker 映像。 这就是我的
.gitlab-ci.yml
样子。
image: alpine:3.15
stages:
- main
main-job:
stage: main
script:
- apk add --update docker openrc
- rc-update add docker boot
- apk add bash git curl
- bash build.sh $GH_TOKEN $REPO
我在build.sh
中有简单的脚本
git clone https://${GH_TOKEN}@github.com/${REPO} source
cd source || exit 1
docker container prune --force || true
docker build . --rm --force-rm --compress --no-cache=true --pull --file Dockerfile -t test-app
docker image ls
docker run --privileged --rm -i test-app
但是 Docker 不启动并且垃圾邮件错误。
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
还尝试在 ubuntu docker 中使用其他命令,例如
service start docker
docker 、dockerd
、service restart docker
docker 等。 但似乎没有任何效果,因为我猜我们不能在 docker 内运行 docker 或其他东西。
我们可以有任何替代的想法吗?
我建议您构建并将构建的映像推送到 dockerhub。 然后,您可以启动引用预构建映像的容器。
看起来您没有运行 docker 代理。 您可以通过添加以下内容在 docker 服务中使用 docker:
services:
- docker:dind
有关更多信息,请参阅有关构建 docker 映像的 GitLab-ci 文档: https ://docs.gitlab.com/ee/ci/docker/using_docker_build.html
我遇到了同样的问题。 可能你必须在你的主机上允许 gitlab-runner 。
sudo usermod -aG docker gitlab-runner
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.