我的Dockerfile内容如下:
FROM amd64/ubuntu:xenial-20180726
ARG GETH_REPO="https://github.com/ethereum/go-ethereum"
ARG GETH_VERSION="v1.8.12"
CMD ["/bin/bash", "-c", "git clone ${GETH_REPO} && \
cd go-ethereum && \
git fetch origin ${GETH_VERSION} && \
git checkout ${GETH_VERSION} && \
make geth && \
touch /var/log/geth_log"]
基本上,我想从存储库下载并构建。但是,当我运行创建的图像时,出现以下错误
$ docker run -it <imageid>
/bin/sh: 1: [/bin/bash,: not found
我已确保可以登录到运行中的容器来执行这些操作。
我想念什么吗?
您的json语法无效,因此docker将其作为带外壳程序的字符串运行,而不是执行它。您的命令中没有需要bash的内容,因此您可以使用带字符串语法的默认/ bin / sh:
FROM amd64/ubuntu:xenial-20180726
ARG GETH_REPO="https://github.com/ethereum/go-ethereum"
ARG GETH_VERSION="v1.8.12"
RUN git clone ${GETH_REPO} && \
cd go-ethereum && \
git fetch origin ${GETH_VERSION} && \
git checkout ${GETH_VERSION} && \
make geth && \
touch /var/log/geth_log
请注意,所有步骤都将作为容器的默认启动命令运行,而不是在构建时执行。您可能想用RUN替换CMD。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句