не удалось запустить graphql prisma nexus по запросу Docker на http://localhost:4466/, - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь запустить Graphql Prisma с Nexus, следуя этой инструкции шаг за шагом.https://www.prisma.io/docs/get-started/03-build-graphql-servers-with-prisma-TYPESCRIPT-t201/

когда я запускаю на своем компьютере nodemon dev он работает нормально

визит http://localhost:4466/_admin работает нормально.

простой запрос в http://localhost:4000/ (согласно официальномудокумент) работает нормально.

            mutation {
              createUser(data: { name: "Jane" }) {
                id
              }
            }

            //return 
            // all working
            {
              "data": {
                "createUser": {
                  "id": "5cd22c1b73c7b2000782c07b"
                }
              }
            }               

Теперь мне нужно запустить index.ts в контейнере Docker, поэтому я создал контейнер

Dockerfile

            FROM node:10 as installer
            WORKDIR /src
            COPY package.json package-lock.json ./
            RUN npm install

            FROM node:10-alpine
            RUN mkdir /src
            WORKDIR /src
            COPY --from=installer /src .
            COPY . .
            RUN npm install -g nodemon
            RUN npm install -g typescript
            EXPOSE 4000
            CMD ["nodemon", "dev"]

docker-файл compose.yml

            version: '3'
            services:
              app:
                build: .
                container_name: "demoprisma_app"
                volumes:
                  - "./:/src/"
                ports:
                  - "4500:4000"  
              prisma:
                image: prismagraphql/prisma:1.32
                restart: always
                ports:
                  - '4466:4466'
                environment:
                  PRISMA_CONFIG: |
                    port: 4466
                    databases:
                      default:
                        connector: mongo
                        uri: mongodb://prisma:prisma@mongo
              mongo:
                image: mongo:3.6
                restart: always
                environment:
                  MONGO_INITDB_ROOT_USERNAME: prisma
                  MONGO_INITDB_ROOT_PASSWORD: prisma
                ports:
                  - '27017:27017'
                volumes:
                  - mongo:/var/lib/mongo
            volumes:
              mongo: ~

Когда я захожу в контейнер app в браузере http:localhost:4500 и делаю тот же запрос

            mutation {
              createUser(data: { name: "Jane" }) {
                id
              }
            }

Я получаю эту ошибку

            {
              "data": null,
              "errors": [
                {
                  "message": "request to http://localhost:4466/ failed, reason: connect ECONNREFUSED 127.0.0.1:4466",
                  "locations": [
                    {
                      "line": 2,
                      "column": 3
                    }
                  ],
                  "path": [
                    "createUser"
                  ]
                }
              ]
            }

Я думаю, что эта ошибка связана с тем, что сеть контейнера Docker, но я не уверен, как сделать index.ts внутри контейнера

. Вы можете клонировать пример проекта с ошибкой из моего github

https://github.com/rollrodrig/prismademotest

просто run docker-compose up чтобы увидеть ошибку

...