相关疑难解决方法(0)

CMD 在 Dockerfile 中的 ENTRYPOINT 后不运行

所以我有一个 docker 文件可以做到这一点:

ENV ENV ${ENV}
ENV SERVICE_NAME ${SERVICE_NAME}
USER app
ENV HOME=/home/app
COPY target /home/app/target
COPY entrypoint.sh /home/app
WORKDIR /home/app
ENTRYPOINT /usr/bin/chamber exec ${ENV}_${SERVICE_NAME} -r 1 -- ./entrypoint.sh
CMD java -jar -Dspring.profiles.active=docker target/my.jar
Run Code Online (Sandbox Code Playgroud)

因此 ENTRYPOINT 运行并从 AWS Parameter Store 中提取一些秘密,并将它们作为环境变量填充到 entrypoint.sh shell 中。然后 entrypoint.sh 对它们执行一些操作,创建一些文件等,并在其最后一行执行“exec $@”。

然后我期待 CMD 运行,但它只能看到运行“ExecStop=/usr/bin/docker stop app”的 systemd 服务文件。

systemd 服务文件执行此操作以启动容器:

ExecStart=/usr/bin/docker run --name app --memory-reservation=128m --memory=512m -e ENV=dev -e SERVICE_NAME=app 1234567890.dkr.ecr.eu-west-2.amazonaws.com/app:latest
Run Code Online (Sandbox Code Playgroud)

CMD怎么了?

docker dockerfile

3
推荐指数
1
解决办法
9187
查看次数

标签 统计

docker ×1

dockerfile ×1