У меня есть образ сервера Prisma из dockerhub, который
prismagraphql/prisma:1.34
Приведенное выше изображение призмы для работы на PORT 4466 требует строки подключения к базе данных, и она передается в качестве переменной среды с использованием файла docker-compose, как показано ниже.
prisma:
image: prismagraphql/prisma:1.34
ports:
- "4466:4466"
environment:
PRISMA_CONFIG: |
port: 4466
databases:
default:
connector: mongo
uri: mongodb://mongodb
Я пытаюсь расширить приведенное выше изображение сервера призмы, как показано ниже.
FROM prismagraphql/prisma:1.34
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.7/main/ nodejs=8.9.3-r1
WORKDIR /project
COPY . .
# To handle 'not get uid/gid' error in alpine linux set unsafe-perm true
RUN apk update && apk upgrade \
&& npm config set unsafe-perm true \
&& npm install --g yarn \
&& npm install -g prisma \
&& yarn install \
&& chmod +x ./entrypoint.sh \
&& chmod +x ./wait-for-it.sh
EXPOSE 4466 4000
ENTRYPOINT ["./entrypoint.sh"]
Файл entrypoint.sh выглядит следующим образом
#!/bin/bash
# wait for the prisma service to start.
# then run prisma deploy (more on that later)
./wait-for-it.sh prisma:4466 -- prisma deploy
# go into the project...
cd /project
# run an npm command to use nodemon to start/watch the server
npm run start
В приведенном выше Dockerfile
Я пытаюсь установить приложение nodejs на существующий образ призмы из dockerhub.
Это приложение nodejs называется prisma nexus. nexus требует подключения к prisma на localhost: 4466, а nexus работает на порту 4000.
Когда я запускаю изображение ниже, я получаю эту ошибку. Т.е. nexus (приложение nodejs) не может подключиться к призме
Could not connect to server at http://localhost:4466. Please check if your server is running.
Наконец, я запускаю расширенное изображение вот так
mongodb:
image: mongo:4.2
container_name: mongodb
volumes:
- ./mongo-volume:/data/db
ports:
- "27017:27017"
networks:
- prisma
prisma:
image: extended-image-here:1.0
container_name: prisma-server
restart: always
ports:
- "4466:4466"
- "4000:4000"
environment:
PRISMA_CONFIG: |
port: 4466
databases:
default:
connector: mongo
uri: mongodb://mongodb
Что я здесь делаю? Пожалуйста помоги.
./wait-for-it.sh
- person Al-waleed Shihadeh   schedule 21.03.2020./wait-for-it.sh prisma:4466 -- prisma deploy
. по какой-то причине вам все еще нравился localhost, а неprisma
. - person Al-waleed Shihadeh   schedule 21.03.2020prisma
контейнере докеров вы реализуете ожидание для контейнера `prisma
. Это похоже на петлю - person Al-waleed Shihadeh   schedule 21.03.2020