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 <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. 执行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,镜像制作成功。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。