可根据配置文件变化自动reload的openresty docker镜像制作
admin
2023-03-29 21:21:10
0

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,镜像制作成功。


相关内容

热门资讯

终于了解“新九五真的有挂吗?”... 家人们!今天小编来为大家解答新九五透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很多...
终于懂了“江西南昌麻将究竟有挂... 有 亲,根据资深记者爆料江西南昌麻将是可以开挂的,确实有挂(咨询软件无需...
浙江:为符合条件的青年创客提供... 财联社12月26日电,浙江省文化广电和旅游厅近日印发《浙江省青创文旅发展实施方案》,充分激发广大青年...
台当局拟限制民代、公务员赴陆,... 海峡导报综合报道 台行政机构今日(26日)通过“两岸人民关系条例”修正草案,民代赴陆须经过许可,所有...
今日重磅消息“皇豪互娱牛牛开挂... 网上科普关于“皇豪互娱牛牛有没有挂”话题很是火热,小编也是针对皇豪互娱牛牛作*弊开挂的方法以及开挂对...
时隔近10年,故宫养心殿再度开... 编辑 | ‍‍高语阳新华社报道,经过近10年的研究性保护和系统性修缮,故宫博物院养心殿于12月26日...
【第一资讯】“人海炸/金/花是... 您好:人海炸/金/花这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这...
今日重大消息“潘潘讲故事怎么装... 您好:潘潘讲故事这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
今日重大发现“胡乐晋中麻将怎么... 网上科普关于“胡乐晋中麻将有没有挂”话题很是火热,小编也是针对胡乐晋中麻将作*弊开挂的方法以及开挂对...
终于了解“老铁十三水到底是不是... 网上科普关于“老铁十三水有没有挂”话题很是火热,小编也是针对老铁十三水作*弊开挂的方法以及开挂对应的...