在docker gitlab-ci-multi-runner上运行docker-compose
我有一个docker-compose开发环境的Docker上运行的项目。
我想通过gitlab-ci-multi-runner“Docker模式”实例让它在GitLabCI上运行。
这是我的.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
是误导性的。 我已经收到了很多次,试图运行使用高山Linuxdynamic链接的二进制文件(它似乎你正在使用)。
问题(据我所知)是二进制编译和链接glibc,但高山使用musl,而不是glibc。
你可以使用ldd /usr/local/bin/docker-compose
来告诉你哪些库缺失(或者如果所有的都失败了,用strace
运行)。
为了得到它的工作,从Python源代码( https://docs.docker.com/compose/install/#install-using-pip )安装可能更容易,这是官方的合成图像所做的( https:// github.com/docker/compose/blob/master/Dockerfile.run )。
或者你可以使用debian或其他使用glibc的发行版上的图像。