gitlab-runner хочет удалить данные Docker-контейнеров - PullRequest
0 голосов
/ 01 декабря 2018

У меня gitlab-runner зарегистрирован следующим образом:

gitlab-runner register -n \
--url http://m2m-tele.com/ \
--registration-token ru7i9G9R-3BJn2RXKdtv \
--executor shell \
--tag-list warehouse
--description "warehouse"

У меня есть проект со следующим .gitlab-ci.yml:

before_script:
    - docker info

build_image:
  script:
    - docker stop warehouse warehouse_redis
    - docker-compose build
    - docker-compose up -d
  tags:
    - warehouse

Мой docker-compose.yml файл:

version: "2"
services:
  warehouse:
    build: .
    ports:
      - "8085:8085"
    container_name: warehouse
    image: warehouse
    volumes:
      - ./data/warehouse:/data
    tty: true

  redis:
    image: redis:4-alpine
    container_name: warehouse_redis
    volumes:
      - ./data/redis:/data

Мой конвейер gitlab-runner проходит при первом запуске проекта.Затем происходит сбой со следующей ошибкой:

Running with gitlab-runner 11.5.0 (3afdaba6)
  on warehouse bdb8c3c8
Using Shell executor...
Running on ubuntu-s-1vcpu-1gb-fra1-01...
Fetching changes...
warning: failed to remove data/warehouse
warning: failed to remove data/redis
ERROR: Job failed: exit status 1

Это происходит из-за того, что я присоединяюсь к контейнеру и выполняю некоторые операции, такие как сохранение данных в базе данных Redis, которая меняет владельца папки data на root.Если я сделаю следующее:

sudo ls -l /home/gitlab-runner/builds/aeb6bff3/0/my_project_path

, конвейер проходит хорошо, но удаляет все данные.Однако мне нужно сохранить данные без изменений, так как они настроены в моем файле docker-compose.yml с помощью volumes.Итак, у меня есть два вопроса: 1. Должен ли я установить пользователя в docker-compose.yml или где-то еще при использовании gitlab's ci / cd?2. Обычно я хочу хранить данные между толчками для проецирования.Как я могу предотвратить удаление данных с gitlab-runner?

EDIT.Решил это, разместив тома по абсолютным путям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...