Перезапуск приложения, запущенного в Docker-контейнере, нарушает работу стека - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть два узла приложений, Foo и Bar, работающих в контейнерах Docker. Foo настроен для связи с Bar через сеть по умолчанию Docker Compose через HTTP-запросы к Bar:3000.

Я использую nodemon для автоматического перезапуска приложений внутри контейнера при изменении кода. Однако всякий раз, когда Bar сбрасывается, сеть прерывается, так что любые будущие запросы от Foo завершаются с ошибками «Отказано в соединении», пока я не перезапущу весь стек.

Вот часть docker-compose.yml для этих услуг.

services:
  Bar:
    build:
      context: auth
      args:
        NPM_TOKEN: ${NPM_TOKEN}
    environment:
      - MONGO_URI=${MONGO_URI}
      - JWT_KEY=${JWT_KEY}
      - OKTA_ISSUER=${OKTA_ISSUER}
      - OKTA_CLIENT_ID=${OKTA_CLIENT_ID}
      - OKTA_API_BASE_URL=${OKTA_API_BASE_URL}
      - OKTA_API_USERS_TOKEN=${OKTA_API_USERS_TOKEN}
      - NODE_PORT=3000
      - NPM_TOKEN=${NPM_TOKEN}
      - GOOGLE_reCAPTCHA_SECRET=${GOOGLE_reCAPTCHA_SECRET}
    depends_on:
      - mongo
    ports:
      - 8082:3000
    volumes:
      - ./auth/:/usr/src/app
    command: npm run dev
  Foo:
    build:
      context: api
      args:
        NPM_TOKEN: ${NPM_TOKEN}
    environment:
      - MONGO_URI=${MONGO_URI}
      - JWT_KEY=${JWT_KEY}
      - NPM_TOKEN=${NPM_TOKEN}
      - AUTH_ENDPOINT_URL=http://auth:3000
      - CHAT_ENDPOINT_URL=http://localhost:8083
      - MANAGEMENT_ENDPOINT_URL=http://localhost:8084
      - GROUPCHAT_ENDPOINT_URL=http://localhost:8085
    ports:
      - 9000:3000
    volumes:
      - ./api:/usr/src/app
    depends_on:
      - mongo
    command: npm run dev -- -L
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...