首页 > 系统相关 >使用 Dockerfile 自定义 Nginx 镜像

使用 Dockerfile 自定义 Nginx 镜像

时间:2023-06-30 21:34:38浏览次数:38  
标签:off 自定义 nginx Nginx sh entrypoint docker Dockerfile

一般来说,自定义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的参数而言必须是一个整体。

标签:off,自定义,nginx,Nginx,sh,entrypoint,docker,Dockerfile
From: https://www.cnblogs.com/exmyth/p/17517859.html

相关文章

  • Nginx七层转发&URL转发
    URL转发应用场景根据HTTP的URL转发的场景,被称之为七层转发(应用层转发),然而LVS的负载均衡一般用于TCP的转发,也就被称之为4层转发。利用Nginx的七层转发,可以实现动静分离,移动、PC端页面区分,交给不同的后端服务器处理,让用户得到更佳的访问体验。通过$http_user_agent获取,根据该变......
  • nginx配置开机启动及配置sudo授权启动
    2、sudo授权其它用户启动(1)root用户编辑visudoroot   ALL=(ALL)      ALLelk    ALL=(root)      NOPASSWD:/etc/init.d/nginx,/usr/local/nginx/sbin/nginx(2)切换用户启动nginx[elk@testroot]$sudo/usr/local/nginx/sbin/nginx[sudo]passwordfore......
  • Nginx之配置虚拟主机vhost
    Nginx之配置虚拟主机vhost:https://blog.csdn.net/u011897392/article/details/127441868?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168811456616800211592147%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=16881145......
  • windows nginx下载
     下载地址http://nginx.org/en/download.html 安装部署下载完成后,解压默认可以到conf目录下nginx.conf修改下启动端口,防止端口冲突   使用命令行进入到nginx目录cdD:\nginx-1.24.0启动nginx服务,启动时会一闪而过是正常的,等会startnginx 之后就打开浏......
  • element新增自定义rules验证
    data中添加属性//电话验证  constvalidatePass=(rule,value,callback)=>{   letvalueStr=value+''   if(valueStr.length!=11||!valueStr.startsWith('1')){    callback(newError('电话必须为1开头的11位数字!'))   }......
  • EasyExcel validator校验 及自定义 枚举校验
    需要校验的实体importcom.alibaba.excel.annotation.ExcelIgnore;importcom.alibaba.excel.annotation.ExcelProperty;importcom.alibaba.excel.annotation.write.style.ColumnWidth;importcom.ruoyi.system.domain.enums.RoleStatusEnum;importcom.ruoyi.system.domain......
  • Nginx 报错 504 Gateway Time-out 和无法上传大于1M文件的解决方法
    Nginx报错504GatewayTime-out的解决方法修改nginx.conf配置文件。keepalive_timeout600;fastcgi_connect_timeout600;fastcgi_send_timeout600;fastcgi_read_timeout600;proxy_connect_timeout600;proxy_send_timeout600;proxy_read_timeou......
  • Kubernetes编程—— 使用自定义资源 —— 介绍自定义资源(Custom Resource,CR)
    介绍自定义资源(CustomResource,CR)自定义资源(CustomResource,CR),它是整个Kubernetes生态系统中最核心的扩展机制。 定义资源可以用作系统内部使用的对象,仅仅对它进行声明式定义,而不关联控制器逻辑,用不保存少量配置信息。但是自定义资源也可以成为很多复杂Kubernetes项目的......
  • 40 个 Nginx 常问面试题
    Nginx是一个轻量级/高性能的反向代理Web服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、腾讯等。 N......
  • nginx http to https
    server{listen80;server_namexxx.cnwww.xxx.cn;return301https://$server_name$request_uri;}server{listen443sslhttp2;server_namexxx.cnwww.xxx.cn;root/var/www/wwwroot/xxx/web;#vu......