Files
mengyanote/Dockerfile

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;"]