Ric*_*ic0 5 yaml docker graphql prisma prisma-graphql
文档中包含的docker-compose.yml示例非常适合本地开发,在本地开发中,人们可能使用docker运行多个服务:
version: '3'
services:
prisma:
image: prismagraphql/prisma:__LATEST_PRISMA_VERSION__
restart: always
ports:
- "4466:4466"
environment:
PRISMA_CONFIG: |
managementApiSecret: __YOUR_MANAGEMENT_API_SECRET__
port: __YOUR_PRISMA_SERVER_PORT__
databases:
default:
connector: __YOUR_DATABASE_CONNECTOR__
migrations: __ENABLE_DB_MIGRATIONS__
host: __YOUR_DATABASE_HOST__
port: __YOUR_DATABASE_PORT__
user: __YOUR_DATABASE_USER__
password: __YOUR_DATABASE_PASSWORD__
mongo:
image: mongo:__LATEST_PRISMA_VERSION__
restart: always
ports:
- "27017:27017"
volumes:
- mongo:/var/lib/mongo
Run Code Online (Sandbox Code Playgroud)
但是,在生产中,没有db在容器中运行。实际上,我们正在使用DBaaS来托管数据库。我们正在使用的数据库是Mongo。
因此,我们需要将Prisma服务器从切换docker-compose up到docker run...。
我们面临的问题是如何设置Prisma容器运行所需的所有环境变量。
我看到两个可能的选择:
PRISMA_CONFIG_PATH指向yml配置文件的变量,例如,prisma_config.yml在docker-compose.yml中,该PRISMA_CONFIG变量作为多行字符串传递。
在Internet上搜索时,我发现单个变量的对应列表应为:
PORT: $PORT
SCHEMA_MANAGER_SECRET: $SCHEMA_MANAGER_SECRET
SCHEMA_MANAGER_ENDPOINT: $SCHEMA_MANAGER_ENDPOINT
SQL_CLIENT_HOST_CLIENT1: $SQL_CLIENT_HOST
SQL_CLIENT_HOST_READONLY_CLIENT1: $SQL_CLIENT_HOST
SQL_CLIENT_HOST: $SQL_CLIENT_HOST
SQL_CLIENT_PORT: $SQL_CLIENT_PORT
SQL_CLIENT_USER: $SQL_CLIENT_USER
SQL_CLIENT_PASSWORD: $SQL_CLIENT_PASSWORD
SQL_CLIENT_CONNECTION_LIMIT: 10
SQL_INTERNAL_HOST: $SQL_INTERNAL_HOST
SQL_INTERNAL_PORT: $SQL_INTERNAL_PORT
SQL_INTERNAL_USER: $SQL_INTERNAL_USER
SQL_INTERNAL_PASSWORD: $SQL_INTERNAL_PASSWORD
SQL_INTERNAL_DATABASE: $SQL_INTERNAL_DATABASE
CLUSTER_ADDRESS: $CLUSTER_ADDRESS
SQL_INTERNAL_CONNECTION_LIMIT: 10
CLUSTER_PUBLIC_KEY: $CLUSTER_PUBLIC_KEY
BUGSNAG_API_KEY: ""
ENABLE_METRICS: "0"
JAVA_OPTS: "-Xmx1G"
Run Code Online (Sandbox Code Playgroud)
所有这些var都在环境文件中设置
docker run -p 4466:4466 --env-file prisma.env prismagraphql/prisma:1.25
它们似乎可以很好地用于SQL数据库,但不适用于Mongo。
使用Mongo时,我设置的值错误或变量名称不同。
像PRISMA_CONFIG_PATH=prisma.config.yml运行容器时那样传递单个env var :
docker run -p 4466:4466 -e PRISMA_CONFIG_PATH=prisma.config.yml prismagraphql/prisma:1.25
我收到以下错误
Exception in thread "main" java.lang.RuntimeException: Unable to load Prisma config: java.io.FileNotFoundException: prisma_config.yml (No such file or directory)
我不知道prisma docker映像的工作目录是什么。我想那会解决。
我能够使其与Option#2一起使用
docker run \
-e PRISMA_CONFIG_PATH="/prisma.yml" \
-v "$(pwd)/env/prisma_config.yml":"/prisma.yml" \" \
-p 4466:4466 \
prismagraphql/prisma:1.25
Run Code Online (Sandbox Code Playgroud)
pyramida_config.yml
port: 4466
databases:
default:
connector: mongo
uri: __YOUR_MONGO_URI__
database: __YOUR_MONGO_DB__
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |