add
This commit is contained in:
parent
526d7927f0
commit
6ce492a058
24
Dockerfile
24
Dockerfile
|
@ -1,5 +1,5 @@
|
||||||
# 基础镜像
|
# 基础镜像
|
||||||
FROM node:20-alpine as base
|
FROM node:18.17-alpine as base
|
||||||
# 更改 apk 镜像源为阿里云
|
# 更改 apk 镜像源为阿里云
|
||||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||||
# 设置 npm 镜像源
|
# 设置 npm 镜像源
|
||||||
|
@ -17,24 +17,30 @@ COPY pnpm-workspace.yaml ./
|
||||||
# 首先复制 package.json, package-lock.json 和 pnpm-lock.yaml 文件
|
# 首先复制 package.json, package-lock.json 和 pnpm-lock.yaml 文件
|
||||||
COPY package*.json pnpm-lock.yaml* ./
|
COPY package*.json pnpm-lock.yaml* ./
|
||||||
|
|
||||||
COPY tsconfig.json .
|
COPY tsconfig.base.json .
|
||||||
# 利用 Docker 缓存机制,如果依赖没有改变则不会重新执行 pnpm install
|
# 利用 Docker 缓存机制,如果依赖没有改变则不会重新执行 pnpm install
|
||||||
#100-500 5-40
|
#100-500 5-40
|
||||||
|
|
||||||
FROM base As server-build
|
FROM base As server-build
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY packages/common /app/packages/common
|
COPY packages/common /app/packages/common
|
||||||
|
COPY packages/tus /app/packages/tus
|
||||||
COPY apps/server /app/apps/server
|
COPY apps/server /app/apps/server
|
||||||
RUN pnpm install --filter server
|
RUN pnpm config set registry https://registry.npmmirror.com/
|
||||||
RUN pnpm install --filter common
|
RUN pnpm install --filter common
|
||||||
|
RUN pnpm install --filter tus
|
||||||
|
RUN pnpm install --filter server
|
||||||
RUN pnpm --filter common generate && pnpm --filter common build:cjs
|
RUN pnpm --filter common generate && pnpm --filter common build:cjs
|
||||||
|
RUN pnpm --filter tus build
|
||||||
RUN pnpm --filter server build
|
RUN pnpm --filter server build
|
||||||
|
|
||||||
FROM base As server-prod-dep
|
FROM base As server-prod-dep
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY packages/common /app/packages/common
|
COPY packages/common /app/packages/common
|
||||||
|
COPY packages/tus /app/packages/tus
|
||||||
COPY apps/server /app/apps/server
|
COPY apps/server /app/apps/server
|
||||||
RUN pnpm install --filter common --prod
|
RUN pnpm install --filter common --prod
|
||||||
|
RUN pnpm install --filter tus --prod
|
||||||
RUN pnpm install --filter server --prod
|
RUN pnpm install --filter server --prod
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,6 +49,7 @@ FROM server-prod-dep as server
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
COPY --from=server-build /app/packages/common/dist ./packages/common/dist
|
COPY --from=server-build /app/packages/common/dist ./packages/common/dist
|
||||||
|
COPY --from=server-build /app/packages/tus/dist ./packages/tus/dist
|
||||||
COPY --from=server-build /app/apps/server/dist ./apps/server/dist
|
COPY --from=server-build /app/apps/server/dist ./apps/server/dist
|
||||||
COPY apps/server/entrypoint.sh ./apps/server/entrypoint.sh
|
COPY apps/server/entrypoint.sh ./apps/server/entrypoint.sh
|
||||||
|
|
||||||
|
@ -85,7 +92,10 @@ EXPOSE 80
|
||||||
CMD ["/usr/bin/entrypoint.sh"]
|
CMD ["/usr/bin/entrypoint.sh"]
|
||||||
|
|
||||||
|
|
||||||
|
# 使用 Nginx 的 Alpine 版本作为基础镜像
|
||||||
FROM nginx:stable-alpine as nginx
|
FROM nginx:stable-alpine as nginx
|
||||||
|
|
||||||
|
# 替换 Alpine 的软件源为阿里云镜像
|
||||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||||
|
|
||||||
# 设置工作目录
|
# 设置工作目录
|
||||||
|
@ -94,9 +104,11 @@ WORKDIR /usr/share/nginx/html
|
||||||
# 设置环境变量
|
# 设置环境变量
|
||||||
ENV NODE_ENV production
|
ENV NODE_ENV production
|
||||||
|
|
||||||
# 安装 envsubst 以支持环境变量替换
|
# 安装 envsubst 和 inotify-tools
|
||||||
RUN apk add --no-cache gettext
|
RUN apk add --no-cache gettext inotify-tools
|
||||||
|
|
||||||
|
# 创建 /data/uploads 目录
|
||||||
|
RUN mkdir -p /data/uploads
|
||||||
|
|
||||||
# 暴露 80 端口
|
# 暴露 80 端口
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue