Docker 容器中命令执行问题及解决方案
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 容器中命令执行问题。
原文地址: https://www.cveoy.top/t/topic/im6v 著作权归作者所有。请勿转载和采集!