Docker 容器中命令执行问题及解决方案

在使用 Docker 构建镜像时,常常会遇到某些命令无法在容器中执行的情况。本文将针对以下 Dockerfile 中出现的命令执行问题进行分析并提供解决方案。

FROM ubuntu

ARG TARGETOS
ARG TARGETARCH
ENV IS_DOCKER=true
WORKDIR /usr/local/soga/

COPY  jj-v3.json /etc/soga.json
RUN  apt update && apt install curl cron socat tzdata -y && curl https://get.acme.sh | sh && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PROGRAM1_ARGS='-c /etc/soga.json'
ENTRYPOINT ['/usr/local/soga/soga']
CMD /usr/local/soga/soga & /usr/bin/soga $PROGRAM1_ARGS

问题描述:

上述 Dockerfile 中,CMD /usr/local/soga/soga & /usr/bin/soga $PROGRAM1_ARGS 这一部分命令没有被执行。

解决方案:

可以尝试将 CMD 命令的格式修改为以下形式:

CMD ['/bin/bash', '-c', '/usr/local/soga/soga & /usr/bin/soga $PROGRAM1_ARGS']

解释:

  • CMD 指令用于指定容器启动时默认执行的命令。* 使用 ['/bin/bash', '-c', ...] 的形式,可以将命令传递给 bash 解释器执行,确保命令被正确解释和执行。

通过修改 CMD 命令的格式,可以解决 Docker 容器中命令执行问题。

Docker 容器中命令执行问题及解决方案

原文地址: https://www.cveoy.top/t/topic/im6v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录