Это шаги, которые я сделал
prisma init
Я установил postgresql для базы данных в моем локальном (не существует).
Он создал 3 файла, datamodel.graphql, docker-compose.yml, prisma.yml
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 psYou should see output similar to this:
$ 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)
Дело в том, что должны быть запущены контейнеры два, а не один.
Проверьте docker-compose logs, чтобы узнать, почему не запускается вторая (база данных).
@NomuraNori Учитывая, что prisma изолирована в контейнере, я не уверен, что он сможет получить доступ к службе (например, postgresql), работающей на локальном хосте.
Я нашел это решение той же проблемы, с которой столкнулся
docker-machine ip default
Используйте этот адрес и замените "localhost" на IP с приведенной выше командой, чтобы он выглядел примерно так в файле prisma.yml.
endpoint: http://1xx.1xx.xx.xxx:4466
Ответ взят из этого Ссылка на Github
Я получаю такой вывод: «Docker machine« default »не существует. Используйте« docker-machine ls »для вывода списка машин. Используйте« docker-machine create », чтобы добавить новую». Как создать докер-машину?
@kwoxer попробуйте эту команду: docker-machine create default. Вы можете прочитать больше здесь: docs.docker.com/machine/get-started
Сейчас я использую монго как докер-сервис. Итак, моя проблема исчезла.
Сказанный процесс сработал для меня. Единственная разница заключалась в том, что мне пришлось запустить docker-machine ls, чтобы получить ip.
вместо docker-compose up -d ИСПОЛЬЗОВАТЬ:
docker-compose up
и не выключайте окно, которое будет поддерживать localhost: 4466 в рабочем состоянии.
Примечание: если вы хотите подключиться для подключения к базе данных, созданной в докере, вам необходимо отобразить порт следующим образом:
docker run --name <ENTER_NAME> -e POSTGRES_PASSWORD=<ENTER_PASSWORD> -d -p 5433:5432 postgres
В приведенном выше случае ПОРТ (5433) = ХОСТ_ПОРТ и ПОРТ (5432) = КОНТЕЙНЕР_ПОРТ
Спасибо, я запускаю postgresql на своем локальном компьютере, в этом случае как настроить prisma для использования локальной базы данных размещенного сервера?