在gitlab的ci中本地运行时,docker-compose的行为不同

时间:2019-10-20 15:04:58

标签: docker docker-compose gitlab gitlab-ci gitlab-ci-runner

我有以下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

因此docker-compose的CI部分具有:

  • 拉动
  • rm -f -s
  • 上-d

但是本地人有:

  • 拉动
  • 上-d

原因是在CI容器中运行时,本地方式失败。

如果我在CI容器中关闭,则会出现类似“无法启动服务X:容器“ ...”:已经存在“的错误

为什么它在本地而不是在远程工作?

额外的问题:如果我在本地构建docker映像,运行程序所在的位置;我需要推/拉映像,还是可以直接部署它?

0 个答案:

没有答案