【发布时间】:2021-05-15 13:10:48
【问题描述】:
我正在将一个使用 PostgreSQL 和 Prisma 的 NodeJS 项目部署到 Kubernetes。我创建了 Dockerfile 并将 docker 映像构建到 Docker Hub:
FROM node:lts-slim
WORKDIR /app
# Add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH
ENV NODE_ENV=production
RUN apt-get update
# Install Chromium
RUN apt-get install chromium -y
# Install yarn
RUN apt-get install yarn -y
COPY package.json /app/package.json
RUN yarn install --silent
# Add app
COPY . /app
# Generate prisma
RUN yarn run generate
# Build the app
RUN yarn build
EXPOSE 4000
# Start the app
CMD ["yarn", "run", "start"]
我想使用 CI/CD,所以我需要检查 PostgreSQL 是否更新。这可以通过npx prisma migrate resolve --preview-feature 完成
我想始终运行prisma migrate 来检查数据库是否已更新,因为如果新版本更改了schema,数据库应该会反映它。
由于 K8S pod 是短暂的,是否将 npx prisma migrate resolve --preview-feature 添加到 start 脚本中,这样每次应用启动时,它也会检查 DB?我不认为一直运行prisma migrate 是好的,但解决方案是什么?
提前致谢!
【问题讨论】:
标签: node.js docker kubernetes prisma