Есть проект, собранный из контейнеров и запускаемый через docker-compose. Одним контейнером там идет mongodb. В принципе, все работает. Но тех.лид запросил сделать так, чтобы вся эта система запускалась безболезненно, даже если на системе установлена и запущена локальная монга.
Решил сделать через переопределение в
docker-compose.override файл. Я не особый спец по докерам и подумал, что если указать другие порты, отличные от дефолтного порта монги, все это заработает. Выяснилось, что порты, вместо перезаписи - конкатенируются. То есть, конфликт остался, проект не запускается. Но все отлично работает, если выключить локальную монгу.
Вот docker-compose.yml
version: '3'
services:
# тут другие контейнеры
mongo:
image: mongo:latest
container_name: 'mongodb'
environment:
- MONGO_DATA_DIR=/data/db
volumes:
- ./data/db:/data/db
ports:
- 27017:27017
command: mongod --smallfiles --logpath=/dev/null
А вот override:
version: '3'
services:
mongo:
ports:
- 27001:27017
Я ожидал, что контейнерная монга запустится на 27001 порту, но она так же стартует на 27017, который уже занят локальной бд, потому
docker-compose up --build крашится.
Возможно-ли запустить две эти монги одновременно?
Можно-ли это реализовать через docker-compose.override?
Я вообще правильно делаю? )