diff --git a/Dockerfile b/Dockerfile index 9ad8780..c4bce7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,59 +1,17 @@ -# =========================================== -# 构建阶段 - 安装依赖并编译项目 -# =========================================== -FROM oven/bun:1-alpine AS builder - -# 设置镜像源加速 -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories +FROM oven/bun:1-alpine # 设置工作目录 WORKDIR /app -# 复制 package 文件 -COPY package.json bun.lock ./ +# 复制所有文件 +COPY . . # 安装依赖 -RUN bun install --frozen-lockfile - -# 复制源代码 -COPY . . +RUN bun install # 构建项目 RUN bun run build -# =========================================== -# 生产阶段 - 最小化运行时镜像 -# =========================================== -FROM oven/bun:1-alpine AS production - -# 设置镜像源加速 -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories - -# 设置工作目录 -WORKDIR /app - -# 复制 package 文件 -COPY package.json bun.lock ./ - -# 只安装生产依赖 -RUN bun install --production --frozen-lockfile - -# 从构建阶段复制编译产物 -COPY --from=builder /app/dist ./dist - -# 创建非 root 用户 -RUN addgroup -g 1001 -S appgroup && \ - adduser -S harbor -u 1001 -G appgroup - -# 设置文件权限 -RUN chown -R harbor:appgroup /app - -# 确保数据库文件目录存在且有正确权限 -RUN mkdir -p /app && chown -R harbor:appgroup /app - -# 切换到非 root 用户 -USER harbor - # 暴露端口 EXPOSE 3000