可根据配置文件变化自动reload的openresty docker镜像制作

网友投稿 335 2022-10-31

可根据配置文件变化自动reload的openresty docker镜像制作

1.      创建工作目录

mkdir openresty && cd openresty

2.      编写使用inotify监控配置文件变化并自动reload的脚本auto-reload.sh:

#!/bin/sh inotifywait -e modify,move,create,delete -mr --timefmt '%d/%m/%y %H:%M' --format '%T %f %e' \ /usr/local/openresty/nginx/conf/conf.d | while read event; do     echo "$event"     /usr/local/openresty/nginx/sbin/nginx -s reload done

3.      编写镜像启动脚本start.sh:

#!/bin/bash /usr/bin/openresty -g "daemon off;" & /auto-reload.sh

4.      编写配置文件nginx.conf:

user nobody; worker_processes  auto; #worker_cpu_affinity 01 10; worker_rlimit_nofile 65535; events {     use epoll;     worker_connections  60000; } http {     include       mime.types;     default_type  application/octet-stream;     tcp_nodelay   on;     log_format  main  '$status $host $remote_addr $request_time - '                       '$upstream_status $upstream_addr $upstream_response_time '                       '[$time_local] $request '                       '$bytes_sent $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';     access_log /usr/local/openresty/nginx/logs/access.log main;     error_log /usr/local/openresty/nginx/logs/error.log;     log_not_found  off;     sendfile        on;     keepalive_timeout  15;     server_names_hash_bucket_size 4096;     client_header_buffer_size 16k;     large_client_header_buffers 4 64k;     gzip on;     gzip_http_version 1.0;     gzip_proxied     expired no-cache no-store private auth;     gzip_types       text/plain application/x-javascript text/css  application/xml text/javascript;     gzip_min_length  1000;     gzip_comp_level 5;     gzip_buffers    4 8k;     gzip_disable "MSIE [1-6]\.(?!.*SV1)";     include localenv.d/*.conf;     include env.d/*.conf;     include conf.d/*.backend.cfg;     include conf.d/*.server.cfg;     server {         listen       80;         server_name  localhost;         #access_log  logs/host.access.log  main;         location / {             root   html;             index  index.html index.htm;         }         #error_page  404              /404.html;         # redirect server error pages to the static page /50x.html         #         error_page   500 502 503 504  /50x.html;         location = /50x.html {             root   html;         }     } }

5.      编写dockerfile:

FROM centos:7.6.1810   MAINTAINER openresty1.15.8.2    ADD auto-reload.sh auto-reload.sh ADD start.sh start.sh RUN yum -y install epel-release && yum install inotify-tools -y && yum install -y yum-utils && yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo && yum install -y openresty && yum clean all && chmod +x start.sh && chmod +x auto-reload.sh ADD nginx.conf /usr/local/openresty/nginx/conf/nginx.conf EXPOSE 80 EXPOSE 443 CMD ["./start.sh"]

6.      执行docker build命令:

docker build -t openresty:1.15.8.2 -f ./dockerfile .

上述命令执行完后,就可以通过docker images看到刚制作好的openresty镜像了

7.      验证,用以下命令运行容器:

docker run -itd -p 8080:80 -v /data/logs:/usr/local/openresty/nginx/logs -v /data/nginx/conf.d:/usr/local/openresty/nginx/conf/conf.d openresty:1.15.8.2

在宿主机目录/data/nginx/conf.d下新增或修改配置文件,容器中的openresty会自动reload,镜像制作成功。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:部署Weave-Scope服务——Docker和k8s的故障排除和监控利器
下一篇:大数据分析“绝地求生”,攻略吃鸡!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~