50 lines
1.4 KiB
Docker
50 lines
1.4 KiB
Docker
# 极简静态资源镜像
|
|
FROM nginx:alpine
|
|
|
|
# 安装 wget 用于健康检查
|
|
RUN apk add --no-cache wget
|
|
|
|
# 极简静态资源镜像
|
|
FROM nginx:alpine
|
|
|
|
# 安装 wget 用于健康检查
|
|
RUN apk add --no-cache wget
|
|
|
|
# 创建自定义 nginx 配置,禁用缓存并确保正确读取挂载目录
|
|
RUN printf 'server {\n\
|
|
listen 80;\n\
|
|
server_name localhost;\n\
|
|
root /usr/share/nginx/html;\n\
|
|
index index.html index.htm;\n\
|
|
\n\
|
|
# 禁用缓存\n\
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";\n\
|
|
add_header Pragma "no-cache";\n\
|
|
add_header Expires "0";\n\
|
|
\n\
|
|
location / {\n\
|
|
try_files $uri $uri/ /index.html;\n\
|
|
# 确保每次都读取最新文件\n\
|
|
sendfile off;\n\
|
|
tcp_nodelay on;\n\
|
|
tcp_nopush off;\n\
|
|
}\n\
|
|
\n\
|
|
# 禁用所有静态文件缓存\n\
|
|
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {\n\
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";\n\
|
|
add_header Pragma "no-cache";\n\
|
|
add_header Expires "0";\n\
|
|
}\n\
|
|
}\n' > /etc/nginx/conf.d/default.conf
|
|
|
|
# 确保挂载目录存在但为空(避免与外部挂载冲突)
|
|
RUN mkdir -p /usr/share/nginx/html && \
|
|
rm -rf /usr/share/nginx/html/* && \
|
|
echo "Waiting for external mount..." > /usr/share/nginx/html/.placeholder
|
|
|
|
# 暴露静态服务端口
|
|
EXPOSE 80
|
|
|
|
# 启动 nginx 前台运行
|
|
CMD ["nginx", "-g", "daemon off;"] |