У меня есть docker-compose.local.yml файл, который выглядит следующим образом:
version: "3.6"
services:
rabbitmq:
image: "rabbitmq:latest"
ports:
- "15672:15672"
- "5672:5672"
volumes:
- "./enabled_plugins:/etc/rabbitmq/enabled_plugins"
abc-service: &a-service
image: ${DOCKER_REGISTRY}unicorn/a-service:${DOCKER_IMAGE_LABEL:-latest}
build:
context: .
dockerfile: ./debugging/Dockerfile
ports:
- "0.0.0.0:8080:8080"
depends_on:
- rabbitmq
environment:
- NODE_ENV=development
- GOOGLE_SHEET_TAB=abc
configs:
- source: abc-service
target: ./bin/csv/main.csv
def-service:
<<: *a-service
environment:
- NODE_ENV=development
- GOOGLE_SHEET_TAB=def
configs:
- source: def-service
target: ./bin/csv/main.csv
configs:
abc-service:
file: ./csvs/abc.csv
def-service:
file: ./csvs/def.csv
Итак, это создает 3 службы ... службу RabbitMQ, службу под названием abc-service и служба def-service , которая копирует из abc-service, но изменяет переменную среды на вкладке листа Google.
Обе эти службы работают из разныхCSV-файлы.
У меня есть структура папок, такая как
-
- src
- bin
- csv
- csvs
, мои копии Dockerfile копируют src и bin в мой контейнер.Я хочу, чтобы мой docker-compose скопировал правильный файл csv в папке csvs для этой службы в папку bin / csv , как указано в разделе конфигурации.
КогдаЯ пытаюсь запустить свои сервисы локально, они не скопировали csv в папку.Похоже, это происходит потому, что для запуска требуется Docker Swarm.
Правильно ли я это делаю?Я видел много разговоров о том, что нужно запускать команды CLI для добавления файлов CSV в качестве переменных конфигурации докера ... Но я не до конца понимаю это, и как это позже будет работать с моим автоматическим развертыванием gitlab?Кроме того, как я могу легко протестировать мое приложение, используя правильный (или, по крайней мере, копируя правильный) CSV в папку bin / csv ?