使用 Dockerfile 自定义 Nginx 镜像
2021/9/11 7:05:04
本文主要是介绍使用 Dockerfile 自定义 Nginx 镜像,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一般来说,自定义Nginx只需要把静态文件放到镜像里就可以了,不需要重写 CMD
与 ENTRYPOINT
。但是,如果的确需要在 Nginx 启动前执行一些操作,就需要重写 CMD
了,如果写成下边就样:
FROM nginx COPY someshell.sh / RUN chmod +x /someshell.sh CMD someshell.sh && nginx -g daemon off;
就会得到个错误 nginx: invalid option: "off"
。网上很多报这种错误的,今天打镜像时恰巧碰到又忘了之前的作法了,索性记录下来,备忘以及帮助后来者。
提供两种类似的自定义 Nginx 镜像写法,一种放在 Dockerfile 里执行脚本 + 启动 Nginx,另一种是脚本里把所有的事都做完。
仅 Dockerfile 修改
FROM nginx:1.16 #省略复制前端的命令 COPY docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh CMD /docker-entrypoint.sh && nginx -g 'daemon off;'
没看错,只是在 daemon off;
前后加上 单引号。docker-entrypoint.sh 名称及内容均可自定义。
脚本中All in One
Dockerfile:
FROM nginx:1.16 #省略复制前端的命令 COPY docker-entrypoint.sh / RUN chmod +x /docker-entrypoint.sh CMD /docker-entrypoint.sh
docker-entrypoint.sh:
#!/bin/bash #做一些操作。。。 nginx -g 'daemon off;'
总结
问题主要出在 daemon off;
对于Nginx的参数而言必须是一个整体。
这篇关于使用 Dockerfile 自定义 Nginx 镜像的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19Docker-Compose容器集群化项目实战:新手入门指南
- 2024-11-19Docker镜像仓库项目实战:新手入门教程
- 2024-11-19Docker容器化部署项目实战:新手入门教程
- 2024-11-19Docker-Compose容器集群化资料入门教程
- 2024-11-19Docker镜像仓库资料详解:新手入门教程
- 2024-11-19Docker容器化部署资料:新手入门指南
- 2024-11-19Docker-Compose容器集群化教程:从入门到实践
- 2024-11-19Docker镜像仓库教程:新手入门指南
- 2024-11-19Docker容器化部署教程:初学者指南
- 2024-11-18Docker-Compose容器集群化入门教程