これは私が行った手順です
prisma init
ローカル(存在しない)のデータベースにpostgresqlを設定しました。
Datamodel.graphql、docker-compose.yml、prisma.ymlの3つのファイルを作成しました
docker-compose up -d
正常に動作していることを確認しました しかし、prisma deploy
を呼び出すと、エラーが表示されます
Could not connect to server at http://localhost:4466. Please check if your server is running.
私が行ったのはマニュアルに記載されている標準操作だけで、カスタマイズはありません https://www.prisma.io/docs/tutorials/deploy-prisma-servers/local-(docker)-meemaesh3k
そしてこれはdocker-compose.ymlです
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.11
restart: always
ports:
- "4466:4466"
environment:
PRISMA_CONFIG: |
port: 4466
# uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
# managementApiSecret: my-secret
databases:
default:
connector: postgres
Host: localhost
port: '5432'
database: databasename
schema: public
user: postgres
password: root
migrations: true
何が足りないのですか?
docker ps
次のような出力が表示されます。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2b799c529e73 prismagraphql/prisma:1.7 "/bin/sh -c /app/sta…" 17 hours ago Up 7 hours 0.0.0.0:4466->4466/tcp myapp_prisma_1 757dfba212f7 mysql:5.7 "docker-entrypoint.s…" 17 hours ago
(ここではmysqlで示されていますが、postgresqlでも有効です)
重要なのは、1つではなく2つのコンテナが実行されている必要があるということです。
小切手 docker-compose logs
2番目(データベース)が開始されなかった理由を確認します。
私が直面していたのと同じ問題に対するこの解決策を見つけました
docker-machine ip default
このアドレスを使用し、「localhost」を上記のコマンドでIPに置き換えて、prisma.ymlファイルで次のようにします。
endpoint: http://1xx.1xx.xx.xxx:4466
答えはこれから参照されます Github Link