У меня есть два узла приложений, 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