与GitLab Docker运行程序共享文件夹

时间:2019-03-20 15:13:16

标签: docker docker-compose gitlab docker-volume

这是我的配置:

我正在使用docker gitlab-runners通过以下.gitlab-ci.yml启动docker-compose:

stages:
  - run

# Official docker compose image.
image:
  name: docker/compose:1.23.2 # update tag to whatever version you want to use.
  entrypoint: ["/bin/sh", "-c"]

services: # is that really necessary? behavior seems the same with or without
  - docker:dind

before_script:
  - docker version
  - docker-compose version

run_compose:
  stage: run
  script:
    - mkdir /c
    - touch /c/__CREATED_FROM_RUNNER__
    - docker-compose down -v
    - docker-compose build
    - docker-compose up
    - ls -l /c
  artifacts:
    paths:
      - /c/*

以前的脚本版本中使用的docker-compose.yml如下所示:

version: "3"
services:
  snitch:
    image: snitch:latest
    environment:
      - PROGRAM_NAME=${PROGRAM_NAME}
    volumes:
      - /c:/caps

  xtools:
    image: xtools:latest
    environment:
      - PROGRAM_NAME=${PROGRAM_NAME}

“ snitch”容器正在将文件写入/caps目录。我以为,“ volume”部分意味着运行器容器中的/c目录将接收文件,并且会将它们收集为工件。

实际行为是容器的/c目录为空(仅存在通过.gitlab-ci.yml中的touch命令创建的文件),但是存在一个/c目录是在跑步者的物理机器上创建的,其中包含文件(!),但没有__CREATED_FROM_RUNNER__文件。

任何有关正在发生的事情的见解将不胜感激。另外,如何将创建的文件作为工件检索?

0 个答案:

没有答案
相关问题