1
0
mirror of https://github.com/sendevia/website.git synced 2026-03-05 23:32:45 +08:00

feat(Dockerfile): simplify Dockerfile by removing self-signed SSL and nginx config

This commit is contained in:
2026-03-04 22:08:52 +08:00
parent 1247943a5e
commit dabb2f6164

View File

@@ -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