init: 羚牛车辆数据中心原型 + 部署配置
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful

- React 18 + Babel-in-browser SPA 原型,覆盖 8 个画板:
  实时地图 / 车辆详情 / 历史查询 / 轨迹回放 / 事件规则 / 通知中心 / ESG 碳减排 / 移动端
- 设计系统:IBM Plex Sans + JetBrains Mono,亮/暗双主题,羚牛绿 #007143
- 数据模型:12 + 40 辆车,TBOX (T) / JT808+1078 (JT) / 双源 (B)
- 部署:nginx 静态托管,Dockerfile + woodpecker.yml + docker-compose.yml
- 镜像:harbor.lnh2e.com/lingniu-v1/ln-vdc:<branch>-<VERSION>
- 容器端口 80,宿主映射 8112,含 /healthz 探活
This commit is contained in:
kkfluous
2026-04-28 15:12:32 +08:00
commit b2d0016a0d
59 changed files with 6938 additions and 0 deletions

30
Dockerfile Normal file
View File

@@ -0,0 +1,30 @@
# 第一阶段:准备静态资源(与 ln-bi 保持两阶段结构对称,便于后续接入构建工具)
FROM alpine:3.20 AS builder
WORKDIR /app
COPY . .
# 清理不需要进镜像的本地开发产物(.dockerignore 已过滤大头,这里再兜底一次)
RUN rm -rf screenshots .design-canvas.state.json .DS_Store \
&& find uploads -name 'pasted-*.png' -delete 2>/dev/null || true \
&& find uploads -name '472ff2cd-*.png' -delete 2>/dev/null || true
# 第二阶段nginx 静态托管
FROM nginx:1.27-alpine
# 拷贝 nginx 配置
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 拷贝静态资源
WORKDIR /usr/share/nginx/html
RUN rm -rf ./*
COPY --from=builder /app/ ./
# 创建 index.html 软链 → 羚牛车辆数据中心.html避免中文 URL 编码问题)
RUN ln -sf "羚牛车辆数据中心.html" index.html
EXPOSE 80
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget -qO- http://127.0.0.1/healthz || exit 1
CMD ["nginx", "-g", "daemon off;"]