gpt4 book ai didi

docker - 在dockerfile中使用多个命令

转载 作者:行者123 更新时间:2023-12-02 19:30:34 25 4
gpt4 key购买 nike

我的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将其作为带 shell 程序的字符串运行,而不是执行它。您的命令中没有需要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。

关于docker - 在dockerfile中使用多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51609508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com