Files
im_webapp/Dockerfile
T
Your Name 85ac8ce43b 接入Gitea Actions蓝绿发布:API_KEY构建时注入、新增Dockerfile
- src/config.js 的 API_KEY 改为从构建时环境变量 TINODE_API_KEY 注入,
  不再依赖官方demo默认值;未设置时保留原demo key作为本地快速测试的兜底
- webpack.config.js 新增 DefinePlugin 完成注入,并自动加载(gitignored的)
  .env.local,开发者本地调试不需要每次手动export
- 新增 Dockerfile(node构建+nginx serve) 和 docker/nginx.conf
- 新增 .gitea/workflows/deploy.yml:手动触发的蓝绿发布流程
2026-08-11 12:40:12 +08:00

38 lines
1.1 KiB
Docker

# ---- Stage 1: build static assets ----
FROM node:22-alpine AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
# TINODE_API_KEY is read by webpack.config.js (via DefinePlugin) at build time.
ARG TINODE_API_KEY=
ENV TINODE_API_KEY=$TINODE_API_KEY
RUN npm run build
# ---- Stage 2: serve with nginx ----
FROM nginx:alpine
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
WORKDIR /usr/share/nginx/html
COPY --from=build /app/umd ./umd
COPY --from=build /app/css/base.min.css ./css/base.min.css
COPY --from=build /app/index.html ./index.html
COPY --from=build /app/index-dev.html ./index-dev.html
COPY --from=build /app/manifest.json ./manifest.json
COPY --from=build /app/service-worker.js ./service-worker.js
COPY --from=build /app/version.js ./version.js
COPY --from=build /app/img ./img
COPY --from=build /app/audio ./audio
# Push notifications are not configured for this deployment yet.
RUN echo "" > ./firebase-init.js
HEALTHCHECK --interval=1m --timeout=3s --start-period=10s \
CMD wget -q -O /dev/null http://localhost/ || exit 1
EXPOSE 80