Commit 4be5d60a authored by mingyard's avatar mingyard

feat:dockerfile

parent 18c4bf84
# 使用官方 Node.js 镜像作为基础镜像
FROM node:20-alpine as build-stage
# 设置工作目录
WORKDIR /code
# 复制 package.json 和 yarn.lock
COPY package.json ./
COPY yarn.lock ./
# 安装依赖
RUN yarn install --production --ignore-optional
# 复制项目文件
COPY . .
# 构建项目
RUN yarn build
# 使用更小的 Node.js 镜像作为运行时镜像
FROM node:20-slim as app-stage
# 设置环境变量
ENV NODE_ENV=prod
# 设置工作目录
WORKDIR /usr/src/code
# 创建配置目录
RUN mkdir /etc/work-server
# 复制构建结果和依赖
COPY --from=build-stage /code/node_modules ./node_modules
COPY --from=build-stage /code/dist ./
COPY --from=build-stage /code/package.json ./
COPY --from=build-stage /code/version.txt ./version.txt
# 暴露应用运行的端口
EXPOSE 3000
# 设置 Node.js 内存限制
ENV NODE_OPTIONS=--max_old_space_size=4096
# 设置时区
ENV TZ=Asia/Shanghai
# 启动命令
CMD [ "yarn", "start" ]
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment