28 lines
701 B
Docker
28 lines
701 B
Docker
# 构建上下文 = 仓库根(docker-compose 已配置)
|
|
# 基础镜像可 build-arg 切换镜像源
|
|
ARG NODE_IMAGE=node:24-alpine
|
|
FROM ${NODE_IMAGE}
|
|
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=8788
|
|
ENV DATA_DIR=/data
|
|
|
|
COPY sync-server/package.json ./package.json
|
|
COPY sync-server/src ./src
|
|
COPY sync-server/schema.sql ./schema.sql
|
|
# 命令层同源:以仓库内数据层覆盖薄适配文件
|
|
COPY app/server/db.mjs ./src/app-commands.mjs
|
|
# Web 前端(构建产物随仓库分发)
|
|
COPY sync-server/www ./www
|
|
|
|
RUN mkdir -p /data
|
|
|
|
EXPOSE 8788
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s \
|
|
CMD wget -qO- http://127.0.0.1:8788/health || exit 1
|
|
|
|
CMD ["node", "src/index.mjs"]
|