Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何在停靠图形ql+;博士后设置?_Postgresql_Docker_Docker Compose_Dockerfile_Prisma - Fatal编程技术网

Postgresql 如何在停靠图形ql+;博士后设置?

Postgresql 如何在停靠图形ql+;博士后设置?,postgresql,docker,docker-compose,dockerfile,prisma,Postgresql,Docker,Docker Compose,Dockerfile,Prisma,我对使用Prisma以及将我的设置固定化是新手。我想使用Prisma指定我的数据模型,将Postgres作为我的数据库,并在GraphQL API中使用它(我当前的API使用apollo server express),该API还处理身份验证和角色等 我现在有一个简单的docker compose.yml和我的GraphQL API的Dockerfile: docker-compose.yml Dockerfile 在这个设置中,迁移以某种容器化的方式进行,我如何使用Prisma和Postgre

我对使用Prisma以及将我的设置固定化是新手。我想使用Prisma指定我的数据模型,将Postgres作为我的数据库,并在GraphQL API中使用它(我当前的API使用apollo server express),该API还处理身份验证和角色等

我现在有一个简单的
docker compose.yml
和我的GraphQL API的
Dockerfile

docker-compose.yml Dockerfile 在这个设置中,迁移以某种容器化的方式进行,我如何使用Prisma和Postgres,而不是在CLI中手动执行Prisma命令


请指出我的误解、提示或反馈,不胜感激!谢谢

在启动nextjs应用程序之前,您需要运行迁移。有几种方法可以做到这一点。有些人将此作为CI/CD脚本的一部分。在使用docker compose的情况下,您可以在启动应用程序之前更改启动命令以运行运行迁移的脚本

首先,创建bash脚本

npx prisma迁移部署
npm启动
然后更改
Dockerfile
以运行脚本

CMD ["startup.sh"]

谢谢@Athir!最后我创建了第二个compose文件:
docker compose.migrate.yml
,并将其作为我的CI/CD的一部分运行。这是一个可行的选择。
# Latest LTS version
FROM node:14

# Set default values for environment variables
ENV API_PORT=3001

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
COPY package*.json ./
RUN npm install

# Bundle app source
COPY . .

# Bind port
EXPOSE ${API_PORT}

# Start server
CMD ["npm", "start"]
CMD ["startup.sh"]