"docker-compose: not found" в конвейере Jenkins. Пробовал добавлять путь в среду - PullRequest
0 голосов
/ 04 ноября 2019

Я запускаю Дженкинса внутри Докера на моей капле DigitalOcean. Когда мой Jenkinsfile запускает «сборку docker-compose», я получаю line 1: docker-compose: not found при попытке сборки.

Мой первый вопрос заключается в том, что если я смонтирую том с помощью /var/run/docker.sock:/var/run/docker.sock в файле docker-compose, явсе еще нужно добавить CLI в мой Dockerfile?

RUN curl -fsSLO https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz \
  && tar xzvf docker-17.04.0-ce.tgz \
  && mv docker/docker /usr/local/bin \
  && rm -r docker docker-17.04.0-ce.tgz

Из-за того, что вы оглядываетесь вокруг, кажется, что все должно быть просто с добавлением тома, но мой работал только после того, как оба.

Второй вопрос (аналогичный первому) - должен ли docker-compose уже работать или мне нужно также установить docker-compose в моем Dockerfile.

Я видел

pipeline {

    environment {
        PATH = "$PATH:<folder_where_docker-compose_is>"
    }
}

для docker-compose, это относится к местоположению на моей капле? Я тоже это пробовал, но, к сожалению, это тоже не сработало.

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Вам необходимо установить docker, docker-compose, убедиться, что пользователь jenkins находится в групповом docker, и установить идентификатор группы Docker для идентификатора группы Docker на хосте.

Пример Dockerfile

1 голос
/ 04 ноября 2019

Установка сокета докера в ваш контейнер только заставит клиента докера взаимодействовать с механизмом докера, работающим на хост-машине, на которой выполняется контейнер.
Вам все еще нужно установить клиенты docker & docker-compose для вызова этих командиз кли.

...