Пишу ci/cd для проекта который написан на основе laradock. Репозитории лежат на gitlab. Пока написал максимально простой файл gitlab-ci.yml для "первого знакомства" c gitlab ci/cd. Получаю ошибку "docker: command not found", но если даже закомментировать команду докера то получаю следующую "docker-compose: command not found" и никак не могу понять откуда они.
Вот сам файл gitlab-ci.yml
image: jonaskello/docker-and-compose:1.12.1-1.8.0
services:
- docker:1.12.1-dind
before_script:
- docker info
- docker-compose version
- cp .env.example .env
- sed -i -- "s/=false/=true/g" .env
- cat .env
- env | sort
ag033, ну так и в build тоже есть вызов docker-compose
Вам надо не комментировать вызовы и строки, а разобраться - что тут вообще происходит. Что и как должен для вас сделать этот pipeline ?
Я уже очень давно не работал с GitLab, и единственная проблема про которою я помню - это сообразить как именно он работает с докером. Часто нужен имидж с поддержкой докера (я вижу, что вы его выбрали, да). Я не знаком с тем образом что вы выбрали, вот ниже, покажу вам кусок своего pipeline, он точно работал, посмотрите, может чтото интересное для себя увидите.
Дмитрий, ну у меня все контейнеры описаны в docker-compose.yml, поэтому и команда для работы с ним вызывается, конкретно это pipline просто билдит все контейнеры, естественно я его потом буду дописывать и он будет обрастать большим количеством команд и логики, но пока даже эта одна команда у меня не хочет работать. Облазив весь интернет я так и не нашел решения поэтому решил снова спросить. Просто докер использовать я не смогу, ибо опять же все Dockerfile-ы лежать в отдельных папках и все контейрны описаны в docker-compose.yml.
ag033, я вот ща тупой вопрос задам - а у вас свой GitLab или вы на обычное зарегались? И если свой - то там где GitLab Runner выполняется докер точно есть?
Дмитрий, Да, гитлаб свой, верится на своем сервере, гитлаб и гитлаб ранер тоже были мною поставлены через docker-compose на одном сервере, просто написал 2 контейнера, один для гитлаба, второй для ранера, у обоих одинаковый нетворк и они друг друга видят, то есть они оба вместе работают, ну и так как ранер сам крутится на докере, то вроде получается что и докер у него есть.
Gitlab и Gitlab Runner поставлены с помощью Docker образов и подняты с помощью Docker-compose оба на одном сервере, то есть и Docker и Dokcer-compose на хосте стоят 100%.