我正在试验一个基于 nginx 的 Dockerfile。最后一行目前看起来像这样:
FROM nginx:alpine
... # not really relevant
CMD /bin/sh -c "envsubst < /etc/nginx/conf.d/site.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
Run Code Online (Sandbox Code Playgroud)
现在,当我使用 运行容器时docker run my-nginx-image,我注意到它CTRL-C不再停止容器。
在进行更改之前,我最后有以下CMD声明:
CMD ["nginx", "-g", "daemon off;"]
Run Code Online (Sandbox Code Playgroud)
在这里,CTRL-C按预期工作:容器已停止。这是为什么?我怎么能同时拥有两个世界?
CTRL-C 在职的envsubst 包括更新
经过一些阅读,我意识到我必须使用CMD [...]. 但我未能将整个命令envsubst < ... > ... && nginx -g 'daemon off;'整合到[...]语法中。