Wird das Ausführen von docker-compose in BitBucket nicht unterstützt?

12

Ziel

Ziel ist es, docker-compose in BitBucket-Pipelines auszuführen

Versuch

bitbucket-pipelines.yml

image: docker/compose:1.12.0

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

Ergebnis

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.

Diskussion

Laut diesem Beitrag wird es nicht unterstützt?

030
quelle

Antworten:

10

Hier ist meine Lösung: (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
Maksim Kostromin
quelle
6

Es ist weniger wahrscheinlich, dass die native Docker-Compose-Integration unterstützt wird, da die Pipelines-API eine benutzerdefinierte Implementierung ähnlicher Funktionen ist und auch wegen möglicher Sicherheitsprobleme, aber es sieht so aus, als wären derzeit weitere Funktionen in der Entwicklung, um weitere Docker-Compose-ähnliche Funktionen zu implementieren diese offene Frage.

UPDATE: Unterstützung für Pipelines mit mehreren Containern hinzugefügt, wie in der Dokumentation beschrieben

Rombob
quelle
3

Ich habe Docker-Compose verwendet, um Bilder mit dem folgenden Bild auf einen Remote-Host zu übertragen.

tmaier / docker-compose: spätestens

Dies ist das grundlegende Docker-Image, auf dem Docker-Compose installiert ist.

Mein bitbucket-pipelines.ymlsieht so aus:

- 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>

Ich habe in meinem Repo das eingecheckt ca.pemund cert.pemper Docker-Compose im keysVerzeichnis benötigt. Der private Schlüssel wird base64-codiert als sichere Variable in den Umgebungsvariablen der Bitbucket-Pipelines gespeichert. Deshalb dekodiere ich ihn einfach und füge ihn keys/key.pemals ersten Schritt in die Pipeline ein.

Denken Sie daran, dass ich docker loginnach dem Festlegen der Umgebungsvariablen für den Remote-Host verwendet.

Nikos Anestos
quelle
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
quelle