【发布时间】:2019-02-01 03:02:11
【问题描述】:
所以我有一个执行此操作的 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
所以 ENTRYPOINT 运行并从 AWS 参数存储中提取一些秘密,并将它们作为环境变量填充到 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
CMD 怎么了?
【问题讨论】:
标签: docker dockerfile