运行 docker-compose on a docker gitlab-ci-multi-runner
Running docker-compose on a docker gitlab-ci-multi-runner
我在 Docker 上有一个项目 运行,其中 docker-compose 用于开发环境。
我想在 GitLabCI 上使用 gitlab-ci-multi-runner "Docker mode" 实例获取它 运行。
这是我的 .gitlab-ci.yml 文件:
image: soullivaneuh/docker-bash
before_script:
- apk add --update bash curl
- curl --silent --location https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
- ./configure
- docker-compose up -d
请注意,soullivaneuh/docker-bash 图像只是安装了 bash 的 docker 图像。
脚本在 docker-compose up -d
命令上失败:
gitlab-ci-multi-runner 0.7.2 (998cf5d)
Using Docker executor with image soullivaneuh/docker-bash ...
Pulling docker image soullivaneuh/docker-bash:latest ...
Running on runner-1ee5079f-project-3-concurrent-1 via sd-59984...
Fetching changes...
Removing app/config/parameters.yml
Removing docker-compose.env
HEAD is now at 5c5e7ff remove docker service
From https://git.dummy.net/project/project
5c5e7ff..45e643d docker-ci -> origin/docker-ci
Checking out 45e643dd as docker-ci...
Previous HEAD position was 5c5e7ff... remove docker service
HEAD is now at 45e643d... Remove docker info commands
$ apk add --update bash curl
fetch http://dl-4.alpinelinux.org/alpine/v3.2/main/x86_64/APKINDEX.tar.gz
OK: 10 MiB in 28 packages
$ curl --silent --location https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ ./configure
$ docker-compose up -d
bash: line 30: /usr/local/bin/docker-compose: No such file or directory
ERROR: Build failed with: exit code 1
我完全不知道为什么会失败。
感谢您的帮助。
No such file or directory
具有误导性。我在尝试使用 alpine linux(您似乎正在使用它)运行 动态链接二进制文件时收到了很多次。
问题(据我所知)是二进制文件是针对 glibc 编译和链接的,但 alpine 使用 musl,而不是 glibc。
您可以使用 ldd /usr/local/bin/docker-compose
来告诉您缺少哪些库(或者 运行 它与 strace
如果一切都失败了)。
要使其正常工作,从 python 源 (https://docs.docker.com/compose/install/#install-using-pip), which is what the official compose image does (https://github.com/docker/compose/blob/master/Dockerfile.run) 安装可能更容易。
或者您可以使用基于 debian 或其他使用 glibc 的发行版构建的映像。
我在 Docker 上有一个项目 运行,其中 docker-compose 用于开发环境。
我想在 GitLabCI 上使用 gitlab-ci-multi-runner "Docker mode" 实例获取它 运行。
这是我的 .gitlab-ci.yml 文件:
image: soullivaneuh/docker-bash
before_script:
- apk add --update bash curl
- curl --silent --location https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
- ./configure
- docker-compose up -d
请注意,soullivaneuh/docker-bash 图像只是安装了 bash 的 docker 图像。
脚本在 docker-compose up -d
命令上失败:
gitlab-ci-multi-runner 0.7.2 (998cf5d)
Using Docker executor with image soullivaneuh/docker-bash ...
Pulling docker image soullivaneuh/docker-bash:latest ...
Running on runner-1ee5079f-project-3-concurrent-1 via sd-59984...
Fetching changes...
Removing app/config/parameters.yml
Removing docker-compose.env
HEAD is now at 5c5e7ff remove docker service
From https://git.dummy.net/project/project
5c5e7ff..45e643d docker-ci -> origin/docker-ci
Checking out 45e643dd as docker-ci...
Previous HEAD position was 5c5e7ff... remove docker service
HEAD is now at 45e643d... Remove docker info commands
$ apk add --update bash curl
fetch http://dl-4.alpinelinux.org/alpine/v3.2/main/x86_64/APKINDEX.tar.gz
OK: 10 MiB in 28 packages
$ curl --silent --location https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ ./configure
$ docker-compose up -d
bash: line 30: /usr/local/bin/docker-compose: No such file or directory
ERROR: Build failed with: exit code 1
我完全不知道为什么会失败。
感谢您的帮助。
No such file or directory
具有误导性。我在尝试使用 alpine linux(您似乎正在使用它)运行 动态链接二进制文件时收到了很多次。
问题(据我所知)是二进制文件是针对 glibc 编译和链接的,但 alpine 使用 musl,而不是 glibc。
您可以使用 ldd /usr/local/bin/docker-compose
来告诉您缺少哪些库(或者 运行 它与 strace
如果一切都失败了)。
要使其正常工作,从 python 源 (https://docs.docker.com/compose/install/#install-using-pip), which is what the official compose image does (https://github.com/docker/compose/blob/master/Dockerfile.run) 安装可能更容易。
或者您可以使用基于 debian 或其他使用 glibc 的发行版构建的映像。