websoft9/docker/proxy/Dockerfile
qiaofeng1227 c07d492543
Some checks are pending
Build image to DockerHub / setup (push) Waiting to run
Build image to DockerHub / build (push) Blocked by required conditions
proxy
2024-11-20 11:08:54 +08:00

36 lines
No EOL
1.7 KiB
Docker

# modify time: 202411201008, you can modify here to trigger Docker Build action
# from Dockerfile: https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/Dockerfile
# from image: https://hub.docker.com/r/jc21/nginx-proxy-manager
FROM jc21/nginx-proxy-manager:2.11.3
LABEL maintainer="Websoft9<help@websoft9.com>"
LABEL version="2.11.3-rc1"
user root
RUN mkdir /data/nginx/custom
COPY ./config/http.conf /data/nginx/custom/http.conf
COPY ./config/initproxy.conf /data/nginx/default_host/initproxy.conf
COPY ./init_nginx.sh /app/init_nginx.sh
RUN chmod +x /app/init_nginx.sh
# 修复nginx启动加载ip_ranges失败的问题
RUN export add_ip_data="const ipDataFile={[CLOUDFRONT_URL]:'ip-ranges.json',[CLOUDFARE_V4_URL]:'ips-v4',[CLOUDFARE_V6_URL]:'ips-v6'}[url];logger.info(ipDataFile);if(ipDataFile){return fs.readFile(__dirname+'/../lib/ipData/'+ipDataFile,'utf8',(error,data)=>{if(error){logger.error('fetch '+ipDataFile+' error');reject(error);return}logger.info('fetch '+ipDataFile+' success');resolve(data)})}" && \
sed -i "s#url);#&${add_ip_data}#g" /app/internal/ip_ranges.js && \
mkdir -p /app/lib/ipData && cd /app/lib/ipData && \
curl -O https://ip-ranges.amazonaws.com/ip-ranges.json && \
curl -O https://www.cloudflare.com/ips-v4 && \
curl -O https://www.cloudflare.com/ips-v6
# 为所有nginx的代理统一加入websockets支持
RUN proxy_line=("proxy_set_header Upgrade \$http_upgrade;" "proxy_set_header Connection upgrade;") && \
proxy_path="/etc/nginx/conf.d/include/proxy.conf" && \
length=${#proxy_line[@]} && \
for ((i=0; i<$length; i++)); do \
if ! grep -Fxq "${proxy_line[$i]}" $proxy_path; then \
echo "${proxy_line[$i]}" >> $proxy_path; \
fi; \
done
ENTRYPOINT [ "/app/init_nginx.sh" ]