Выполнить внешний bash-скрипт внутри сборки GitLab-ci Docker - PullRequest
1 голос
/ 20 мая 2019

Я хотел бы выполнить внешний (на локальной машине) bash-скрипт из gitlab-ci.yml, который использует образ docker: stable. Я хотел бы выполнить startup.sh, расположенный вне образа докера gitlab. Это возможно или есть лучшие варианты?

gitlab-ci.yaml

image: docker:stable

#Build script

variables:
  CI_DEBUG_TRACE: "true"
  DOCKER_DRIVER: overlay

before_script:
  - docker --version

build:
  services:
  - docker:dind
  script:
    - docker build --no-cache -t <tag> .
    - docker login -u root -p <pass> <registry>
    - docker tag ...
    - docker push ...
    - echo "build completed"
  stage: build
  tags:
    - <tag>

deploy_staging:
  stage: deploy
  script:
    - ./sh startup.sh

скрипт bash

#!/bin/bash

docker login -u root -p <pass>
docker pull <image>
docker-compose up -d

1 Ответ

0 голосов
/ 25 мая 2019

Я не уверен, является ли это наилучшей практикой для вашего варианта использования, но простой способ поделиться файлами с изображением - добавить том и поделиться этим кодом с изображением, отредактировав файл config.toml.

добавить эту строку в config.toml в [runners.docker]

volume = ["/ cache", путь к startup.sh : / root / scripts "]

, а затем внутри your.gilatb.yml

    deploy_staging:
      stage: deploy
      script:
        - chmod +x /root/scripts/startup.sh     
        - ./sh /root/scripts/startup.sh
...