Скрипт запускался с Gitlab CI-CD остановился без завершения - PullRequest
0 голосов
/ 10 июня 2019

Я настроил gitlab ci-cd, в котором я вызываю скрипт для выполнения какой-либо задачи на моем сервере.

production:
  stage: production
  # when: manual
  script:
    - "which ssh-agent || ( apk update && apk add openssh-client )"
    - ssh ubuntu@$DEPLOY_SERVER 'bash -s' < ./myscript.sh
  only:
    - master

Теперь внутри myscript.sh я проверил, установлен ли докер, или нет:

#!/bin/sh

set -e

which docker || ( sudo apt update -y && sudo apt install apt-transport-https ca-certificates curl software-properties-common -y && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" -y && sudo apt update -y && sudo apt-cache policy docker-ce && sudo apt install docker-ce )

sudo docker version

... continue performing the tasks

Проблема в том, что если установлена ​​программа Docker, то выполняются задачи от sudo docker version до конца сценария.

Но если программа Docker не установлена, то есть which docker не выполняется, затем устанавливаются требуемые пакеты, но затем не выполняются все перечисленные ниже задачи, и gitlab-cicd показывает Job succeeded без выполнения других перечисленных ниже задач с sudo docker version до конца.

В чем причина?

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