我有一个 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复制但发生了变化谷歌工作表标签的环境变量。
这两个服务都来自不同的csv文件。
我有一个类似的文件夹结构
-
- src
- bin
- csv
- csvs
我的Dockerfile将 src 和 bin 复制到我的容器中。我想让我的docker-compose将该服务的 csvs 文件夹中的正确的csv复制到配置部分中指定的 bin / csv 文件夹中。
当我尝试在本地运行我的服务时,它们没有将csv复制到该文件夹。这似乎是因为它需要docker swarm才能运行。
我这样做正确吗?我已经看到了很多关于必须运行CLI命令以将CSV文件添加为docker config变量的讨论...但是我不完全了解这一点,并且以后它将如何与gitlab自动部署一起使用?另外,如何使用正确的csv(或至少复制正确的csv)轻松地测试我的应用程序到 bin / csv 文件夹?