docker-compose ведет себя по-разному при локальном запуске в ci gitlab - PullRequest
0 голосов
/ 20 октября 2019

У меня есть следующий скрипт gitlab-ci. Он используется для сервера данных инструмента под названием «облачно».

бегун находится на целевой машине.

image: 'docker/compose:1.25.0-rc1'
services:
    - 'docker:dind'
variables:
    GIT_SUBMODULE_STRATEGY: recursive

stages:
    - build
    - deploy


buildCode:
    stage: build
    except:
      - deploy
    script:
        - docker build -t cloudy-dataserver -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest -f dockerfile .


deployCode:
    stage: deploy
    only:
      - deploy
    script:
        - docker build -t cloudy-dataserver -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest -f dockerfile .
        - docker login registry.gitlab.com -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD}
        - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:latest
        - docker network create cloudy-network && echo 'creating network'
        - docker-compose -f docker-compose.yml pull
        - docker-compose -f docker-compose.yml rm -f -s
        - docker-compose -f docker-compose.yml up -d

в строке:

- docker network create cloudy-network && echo 'creating network'

Эхо-часть состоит в том, чтобы избежать ошибки из уже существующей сети.

локально, когда я хочу протестировать, у меня есть скрипт с этим:

[ ! "$(docker network ls | grep cloudy-network)" ] && docker network create cloudy-network
docker-compose pull
docker-compose down
docker-compose up -d

, поэтому раздел CI для докера-compose имеет:

  • pull
  • rm -f -s
  • up -d

, но локальный имеет:

  • потяните
  • вниз
  • вверх -d

, и причина в том, что локальный путь НЕВОЗМОЖЕН при запуске в контейнере CI.

если я выполняю down, в контейнере CI появляется ошибка типа "не могу запустить службу X: контейнер" ... ": уже существует"

почему она работает локально, ноне удаленно?

бонусный вопрос: если я построю образ докера локально, где находится бегун;мне нужно нажать / вытащить образ, или я могу развернуть его напрямую?

...