如何创建安装Prisma v5的Docker Compose文件及升级现有实例?
从Prisma v1.12升级到最新版Prisma的解决方案
首先明确:Prisma v1已经停止维护,官方Docker Hub上的prismagraphql/prisma镜像早就停更了。现在的「最新版Prisma」是Prisma ORM(原Prisma 2及后续版本),它和Prisma 1是完全不同的架构,没法直接替换镜像tag升级,得重构部署配置。
一、推荐方案:迁移到Prisma ORM
Prisma ORM不需要单独的Prisma服务容器,它作为应用依赖集成运行,步骤如下:
1. 编写Prisma Schema配置
在项目根目录创建prisma/schema.prisma文件,替换成你的数据库连接和数据模型:
generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" // 直接使用你的Postgres连接地址,开启SSL url = "postgresql://ijgyrvqtpinnqe:45c5b8e5eb835c06d51150e5869b655590c01d0ace319ac6bb8e01cfa57f55b2@ec2-50-16-241-91.compute-1.amazonaws.com:5432/d63k1orhak3ro8?sslmode=require" } // 这里替换成你原来Prisma 1的数据模型,比如: model User { id Int @id @default(autoincrement()) name String? email String @unique }
2. 修改docker-compose.yml
不再需要单独的Prisma服务,把Prisma集成到你的应用容器中(以Node.js应用为例):
version: '3' services: app: build: . # 指向你的应用Dockerfile路径 restart: always ports: - "3000:3000" # 替换成你的应用端口 environment: # 把数据库连接地址通过环境变量传给应用 DATABASE_URL: "postgresql://ijgyrvqtpinnqe:45c5b8e5eb835c06d51150e5869b655590c01d0ace319ac6bb8e01cfa57f55b2@ec2-50-16-241-91.compute-1.amazonaws.com:5432/d63k1orhak3ro8?sslmode=require"
3. 编写应用Dockerfile
确保在构建镜像时生成Prisma Client并执行迁移:
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . # 生成Prisma Client供应用调用 RUN npx prisma generate # 执行数据库迁移(如果需要同步数据模型到数据库) RUN npx prisma migrate deploy CMD ["npm", "start"]
二、临时方案:继续使用Prisma 1(不推荐)
如果暂时无法迁移到Prisma ORM,可以使用Prisma 1的最后一个官方版本(1.34.12),直接修改docker-compose.yml中的镜像tag即可,不需要自己构建:
version: '3' services: prisma: image: prismagraphql/prisma:1.34.12 # 替换为最后一个官方版本tag restart: always ports: - "4466:4466" environment: PRISMA_CONFIG: | port: 4466 # managementApiSecret: my-secret databases: default: connector: postgres host: ec2-50-16-241-91.compute-1.amazonaws.com port: '5432' database: d63k1orhak3ro8 ssl: true user: ijgyrvqtpinnqe password: 45c5b8e5eb835c06d51150e5869b655590c01d0ace319ac6bb8e01cfa57f55b2 migrations: true
⚠️ 注意:Prisma 1已经没有安全更新和维护,长期使用存在风险,建议尽快迁移到Prisma ORM。
三、如果确实需要自行构建Prisma 1镜像(自定义需求)
只有当你需要修改Prisma 1源码时才需要自行构建,步骤如下:
- 克隆Prisma 1仓库:
git clone https://github.com/prisma/prisma1.git - 切换到目标版本分支:
git checkout 1.34.12 - 进入docker构建目录:
cd prisma1/docker - 构建镜像:
docker build -t 你的DockerHub用户名/prisma:自定义版本tag . - 登录Docker Hub:
docker login - 推送镜像到仓库:
docker push 你的DockerHub用户名/prisma:自定义版本tag
内容的提问来源于stack exchange,提问作者Harsh Shah
相关产品推荐
相关产品推荐

