8

由于官方文档中提到了该图像,因此图像 jenkinsci/blueocean 似乎是官方docker

我想docker-compose在容器中运行命令,但这个图像只带有docker而不是docker-compose.

因此,我尝试docker-compose按照通常的方式在容器内安装。

$ curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

它看起来安装成功,但是,当我运行时docker-compose --version,它返回bash: ./docker-compose: No such file or directory,即使我可以docker-compose$(which docker-compose).

(此错误与 无关$PATH,我尝试直接在所在目录运行docker-compose

我如何docker-compose在镜像中安装,即如何构建包含docker-compose基于的新镜像jenkinsci/blueocean

4

2 回答 2

4

对我来说,来自“INSTALL AS A CONTAINER”的解决方案 是:

$ sudo curl -L --fail https://github.com/docker/compose/releases/download/1.21.2/run.sh -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
于 2018-07-10T12:58:45.713 回答
3

您需要添加 glibc:

FROM jenkinsci/blueocean

USER root

RUN curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose && \
    chmod +x /usr/local/bin/docker-compose

RUN apk add ca-certificates wget && \
    wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
    GLIBC_VERSION='2.27-r0' && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk && apk add glibc-${GLIBC_VERSION}.apk && \
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-bin-${GLIBC_VERSION}.apk && apk add glibc-bin-${GLIBC_VERSION}.apk
于 2018-06-12T12:16:52.263 回答