我在 docker 容器内有一个 gitlab 运行程序,如果我运行像 nginx 这样的图像,则运行良好。但现在我尝试在 gitlab 运行程序内的 docker (dind) 中运行 docker,并且我想在 dind 内运行 docker-compose。 Docker info 运行良好,但如果我尝试运行 docker-compose,则会收到权限被拒绝的错误。
我将 /usr/local/bin/docker-compose 文件链接到 gitlab runner 容器,并将其输入到 runner config.toml 文件的volumes参数中。
如果我尝试运行 sudo ,它会以未知命令错误结束,因此这不是解决方案。
我是否必须更多地链接一些文件或者是许多嵌套容器?
为了有docker-compose
,您需要安装它才能获得图像docker https://hub.docker.com/_/docker,其版本为 18.09.6,在撰写本文时构建为 481bc77。
Since docker-compose 版本 1.24.0 https://wiki.alpinelinux.org/wiki/Docker#Docker_Compose,您还需要以下依赖项才能使 docker-compose 成为安装在高山上 https://docs.docker.com/compose/install/#install-compose-on-linux-systems:
apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
这是一个示例.gitlab-ci.yml
:
image: docker:stable
stages:
- deploy
services:
- docker:dind
before_script:
- apk update
- apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
- pip install docker-compose
deploy_app:
stage: deploy
script:
- docker-compose down
- docker-compose up -d
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)