Prisma部署Docker错误“无法连接到服务器”

时间:2018-07-14 03:07:09

标签: docker graphql prisma

这是我已经完成的步骤

prisma init

我在本地设置数据库的PostgreSQL(不存在)。

它创建了3个文件,datamodel.graphql,docker-compose.yml,prisma.yml

docker-compose up -d

我确认它运行成功 enter image description here 但是,如果我致电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

我想念什么?

3 个答案:

答案 0 :(得分:4)

我找到了解决我遇到的相同问题的方法

docker-machine ip default

使用该地址,并使用上述命令用IP替换“本地主机”,以在Arizonaa.yml文件中看起来像这样

endpoint: http://1xx.1xx.xx.xxx:4466

答案从此Github Link

答案 1 :(得分:1)

documentation mentions

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)

重点是:应该有两个正在运行的容器,而不是一个。

检查docker-compose logs,以查看第二个数据库(数据库)为何未启动。

答案 2 :(得分:1)

代替 docker-compose up -d 用途:

docker-compose up

并使窗口保持运行状态,这将使localhost:4466保持活动状态。

注意:如果您要连接以连接到在docker中创建的数据库,则需要以以下方式映射端口:

docker run --name <ENTER_NAME> -e POSTGRES_PASSWORD=<ENTER_PASSWORD> -d -p 5433:5432 postgres  

在上述情况下,PORT(5433)= HOST_PORT和PORT(5432)= CONTAINER_PORT