Общие папки с бегунами GitLab Docker - PullRequest
1 голос
/ 20 марта 2019

Вот моя конфигурация:

Я использую docker gitlab-runners для запуска docker-compose со следующим .gitlab-ci.yml:

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. Я предположил, что раздел тома означал, что каталог /c в контейнере бегуна будет получать файлы и что они будут собираться как артефакты.

Фактическое поведение заключается в том, что каталог /c контейнера пуст (присутствует только файл, созданный командой touch в .gitlab-ci.yml), но в * * создан каталог /c 1016 * физическая машина бегуна с файлами внутри него (!), Но без файла __CREATED_FROM_RUNNER__.

Любая информация о том, что происходит, будет принята с благодарностью. Кроме того, как я могу восстановить созданные файлы как артефакты?

...