add drone.yaml
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
|||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
|
||||||
|
name: build-and-deploy-prod
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: prod-build-image
|
||||||
|
image: ccr.ccs.tencentyun.com/violin/drone-kaniko:latest
|
||||||
|
settings:
|
||||||
|
repo: ccr.ccs.tencentyun.com/violin/violin-cv
|
||||||
|
tags:
|
||||||
|
- latest
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
context: .
|
||||||
|
registry: ccr.ccs.tencentyun.com
|
||||||
|
username: 100024540033
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
||||||
|
|
||||||
|
- name: prod-deploy
|
||||||
|
image: ccr.ccs.tencentyun.com/violin/kubectl:latest
|
||||||
|
cluster: kubernetes
|
||||||
|
namespace: drone
|
||||||
|
commands:
|
||||||
|
- kubectl set image deployment/violin-cv cv=ccr.ccs.tencentyun.com/violin/violin-cv:latest
|
||||||
|
- kubectl rollout status deployment/violin-cv
|
||||||
+31
@@ -0,0 +1,31 @@
|
|||||||
|
# ============================================================
|
||||||
|
# violin-cv Dockerfile — 纯 HTML 静态站(不 build)
|
||||||
|
# ============================================================
|
||||||
|
# 架构:
|
||||||
|
# 1. 基础镜像:nginx alpine(轻量)
|
||||||
|
# 2. COPY:把 src/pages/*.html 直接复制到 nginx serve 目录
|
||||||
|
# 3. nginx 配置:让 / 指向 index.html
|
||||||
|
#
|
||||||
|
# 注意:HTML 中所有 style / script 都在文件内联(或外部 fonts),
|
||||||
|
# 所以不依赖额外的 CSS / JS 文件 —— 单文件即可 serve。
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
FROM ccr.ccs.tencentyun.com/violin/nginx
|
||||||
|
|
||||||
|
# 删除默认 nginx 配置
|
||||||
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# 复制 nginx 配置
|
||||||
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
|
# 复制静态文件(含 HTML)
|
||||||
|
COPY src/pages/ /usr/share/nginx/html/
|
||||||
|
|
||||||
|
# 暴露 HTTP 端口
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
# 健康检查(可选,K8s 会用)
|
||||||
|
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
|
||||||
|
CMD wget -q --spider http://localhost/ || exit 1
|
||||||
|
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
# 字符集 + gzip
|
||||||
|
charset utf-8;
|
||||||
|
gzip on;
|
||||||
|
gzip_types text/css application/javascript text/javascript application/json
|
||||||
|
image/svg+xml application/xml text/xml application/xml+rss;
|
||||||
|
|
||||||
|
# 安全 headers
|
||||||
|
add_header X-Content-Type-Options "nosniff" always;
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||||
|
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
||||||
|
|
||||||
|
# SPA 回退(虽然当前没路由,但留个兜底)
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ $uri.html /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# 静态资源缓存(图片 / css / js)
|
||||||
|
location ~* \.(css|js|jpg|jpeg|png|gif|svg|woff|woff2|ttf|eot)$ {
|
||||||
|
expires 30d;
|
||||||
|
add_header Cache-Control "public, max-age=2592000";
|
||||||
|
}
|
||||||
|
|
||||||
|
# 错误页 fallback
|
||||||
|
error_page 404 /index.html;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user