溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

可根據(jù)配置文件變化自動(dòng)reload的openresty docker鏡像制作

發(fā)布時(shí)間:2020-07-26 17:21:42 來源:網(wǎng)絡(luò) 閱讀:922 作者:zhaodelu 欄目:云計(jì)算

1.????? 創(chuàng)建工作目錄

mkdir?openresty?&&?cd?openresty

2.????? 編寫使用inotify監(jiān)控配置文件變化并自動(dòng)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.????? 編寫鏡像啟動(dòng)腳本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?<xxx@xxx.com>
?
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.????? 執(zhí)行docker build命令:

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

上述命令執(zhí)行完后,就可以通過docker images看到剛制作好的openresty鏡像了

7.????? 驗(yàn)證,用以下命令運(yùn)行容器:

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

在宿主機(jī)目錄/data/nginx/conf.d下新增或修改配置文件,容器中的openresty會(huì)自動(dòng)reload,鏡像制作成功。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI