这个 dockerfile 有什么问题

What's wrong with this dockerfile

我的 dockerfile 有什么问题? dockerfile 在我的 repo 的根文件夹中,也在 dist 文件夹中。

FROM nginx

# copy folder
COPY dist /usr/share/nginx/html

EXPOSE 8080
CMD ["nginx"]

我构建镜像:

docker build -f Dockerfile.nginx -t localhost:5000/test/image:${version} .

执行后图像就在那里docker images

它看起来很简单,但是当我尝试 运行 图像作为容器时:

docker run -d -p 80:8080 localhost:5000/test/image:15
545445f961f4ec22becc0688146f3c73a41504d65467020a3e572d136354e179

但是:Exited (0) About a minute ago

docker logs 什么也没显示

默认 nginx 行为是 运行 作为守护进程。使用参数 daemon off.

来防止 运行 nginx
CMD ["nginx", "daemon off"]

默认情况下,Nginx 将分叉到后台——因为原始前台进程已终止——Docker 容器将立即停止。你可以看看 original image's Dockerfile 是如何处理这个的:

CMD ["nginx", "-g", "daemon off;"]

标志 -g "daemon off;" 导致 Nginx 不分叉,而是在前台继续 运行。 因为您已经扩展了官方 nginx 图像 ,所以您可以完全删除 CMD 行,因为无论如何它将继承自基本图像。