如何使用不同的配置文件测试docker-compose?

时间:2018-12-17 12:19:40

标签: docker docker-compose docker-swarm

我有一个 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 文件夹?

0 个答案:

没有答案