这个 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
行,因为无论如何它将继承自基本图像。
我的 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
行,因为无论如何它将继承自基本图像。