diff --git a/Dockerfile b/Dockerfile index b501b2e..ed26ae2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,79 +17,9 @@ RUN npm i && npm run docs:build # 最终阶段 FROM nginx:stable-perl -# 生成自签名证书 -RUN mkdir -p /etc/nginx/certs && \ - openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ - -keyout /etc/nginx/certs/server.key \ - -out /etc/nginx/certs/server.crt \ - -subj "/C=CN/ST=State/L=City/O=Organization/CN=localhost" - # 从构建阶段复制 dist 产物到 workdir COPY --from=builder /app/.vitepress/dist /app/dist -# 配置 nginx -# 删除默认配置 -RUN rm -f /etc/nginx/conf.d/default.conf - -# 创建自定义 nginx 配置 -RUN cat > /etc/nginx/conf.d/vitepress.conf <<'EOF' -# 日志配置 -error_log /var/log/nginx/error.log warn; - -# HTTP 重定向到 HTTPS -server { - listen 80 default_server; - listen [::]:80 default_server; - - server_name _; - access_log off; - return 301 https://$host$request_uri; -} - -# HTTPS 服务器配置 -server { - listen 443 ssl default_server; - listen [::]:443 ssl default_server; - - server_name _; - access_log off; - - # SSL 证书配置 - ssl_certificate /etc/nginx/certs/server.crt; - ssl_certificate_key /etc/nginx/certs/server.key; - - # SSL 安全配置 - ssl_protocols TLSv1.2 TLSv1.3; - ssl_ciphers HIGH:!aNULL:!MD5; - ssl_prefer_server_ciphers on; - - # 设置根目录指向构建产物 - root /app/dist; - - # VitePress SPA 路由配置 - location / { - try_files $uri $uri/ /index.html; - expires 30d; - add_header Cache-Control "public, immutable"; - } - - # 静态资源缓存配置 - location ~* \.(js|css|woff2|png|jpg|jpeg|gif|svg|ico)$ { - expires 365d; - add_header Cache-Control "public, immutable"; - } - - # 禁用缓存 HTML 文件 - location ~* \.html$ { - expires off; - add_header Cache-Control "no-cache, no-store, must-revalidate"; - } -} -EOF - -# 验证 nginx 配置 -RUN nginx -t - # 暴露端口(80 HTTP 和 443 HTTPS) EXPOSE 80 443