2025-03-05
编程与技术
00
请注意,本文编写于 58 天前,最后修改于 58 天前,其中某些信息可能已经过时。

一个构建环境,一个运行环境,在构建环境中完成包含prisma的编译,然后将编译后的 node_modules 及相关环境COPY到运行环境中,并把 prisma 自动生成的数据库更新脚本拷贝到容器中,以便实现数据库结构自动更新!

不知道时候可以优化掉 node_modules 的拷贝,没尝试过,抽空可以试试。

详情如下:

sh
FROM node:20-alpine3.21 AS BUILDER WORKDIR /app COPY package*.json ./ # 安装依赖并生成 Prisma Client RUN npm install COPY . . RUN npx prisma generate RUN npm run build FROM node:20-alpine3.21 AS RUNNER LABEL author.name="月上老狗" LABEL author.email="[email protected]" LABEL project.name="wechatbot" LABEL project.version="0.0.3" WORKDIR /app COPY ./prisma/ ./prisma/ COPY --from=builder /app/.output/ ./ COPY --from=builder /app/.output/server/node_modules/ ./node_modules/ COPY --from=builder /app/.output/server/node_modules/.prisma/ ./.prisma/ # COPY ./data/ /app/data COPY ./entrypoint.sh ./entrypoint.sh RUN chmod +x entrypoint.sh ENV NUXT_APP_VERSION="0.0.3" ENV DATABASE_URL="/app/data/wechatbot.db" ENV NUXT_ADMIN_USERNAME="" ENV NUXT_ADMIN_PASSWORD="" ENV NUXT_WXPUBLIC_SECRET="" ENV NUXT_WXPUBLIC_TOKEN="" ENV NUXT_WXPUBLIC_AESKEY="" VOLUME /app/data/ ENV PORT="3001" EXPOSE 3001 ENTRYPOINT ["/app/entrypoint.sh"]

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!