Работает ли docker-compose в BitBucket?

12

цель

Цель состоит в том, чтобы запустить docker-compose в конвейерах BitBucket

попытка

Bitbucket-pipelines.yml

image: docker/compose:1.12.0

pipelines:
  default:
    - step:
        script:
          - docker-compose up --build

результат

The Docker Engine version is less than the minimum required by Compose.
Your current project requires a Docker Engine of version 1.13.0 or greater.

обсуждение

По этому посту это не поддерживается?

030
источник

Ответы:

10

Вот мое решение: (bitbucket-pipelines.yml)

pipelines:
  default:
    - step:
        script:
          - export DOCKER_COMPOSE_VERSION=1.18.0
          - export DOCKER_COMPOSE_URL=https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)
          - curl -L $DOCKER_COMPOSE_URL > docker-compose
          - chmod +x docker-compose
          - mv docker-compose /usr/local/bin
          - docker-compose build --force-rm --no-cache --pull
Максим Костромин
источник
6

Мы с меньшей вероятностью увидим поддержку встроенной интеграции docker-compose, потому что API конвейеров представляет собой пользовательскую реализацию аналогичной функциональности, а также из-за возможных проблем безопасности, но, похоже, в настоящее время разрабатывается больше функций для реализации большего количества подобных docker-compose функций в это открытый вопрос.

ОБНОВЛЕНИЕ: добавлена ​​поддержка многоконтейнерных конвейеров, как описано в документации

rombob
источник
3

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

tmaier / докер-Compose: последние

Это базовый образ докера с установленным docker-compose.

Моя bitbucket-pipelines.ymlвыглядит так:

- step:
    image: tmaier/docker-compose:latest
    script:
        - (umask  077 ; echo $DOCKER_PRIVATE_KEY | base64 -d > ./keys/key.pem)
        - export DOCKER_CERT_PATH=./keys/
        - export DOCKER_TLS_VERIFY="1"
        - export DOCKER_HOST=tcp://<DOCKER_HOST_IP>:2376
        - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
        - docker-compose up -d <service>

Я зарегистрировался в моем репозитории ca.pemи cert.pemнеобходим docker-compose в keysкаталоге. Закрытый ключ сохраняется base64encoded как защищенная переменная в переменных среды конвейера Bitbucket, поэтому я просто декодирую его и вставляю keys/key.pemв конвейер в качестве первого шага.

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

Никос Анестос
источник
0

Bitbucket-pipelines.yml

image: python:3.8.1

pipelines:
  branches:
    "**":
      - step:
          name: Build
          services:
            - docker
          caches:
            - docker
            - pip
          script:
            - pip install docker-compose
            - docker network create dockernet
            - docker-compose build

definitions:
  services:
    docker:
      memory: 2048
Codler
источник