L'esecuzione di docker-compose non è supportata in BitBucket?


12

Scopo

L'obiettivo è eseguire la composizione docker nelle pipeline BitBucket

Tentativo

bitbucket-pipelines.yml

image: docker/compose:1.12.0

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

Risultato

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.

Discussione

Secondo questo post non è supportato?

Risposte:


10

Ecco la mia soluzione: (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

Abbiamo meno probabilità di vedere il supporto dell'integrazione nativa docker-compose perché l'API delle pipeline è un'implementazione personalizzata di funzionalità simili e anche perché possibili problemi di sicurezza, ma sembra che al momento siano in fase di sviluppo più funzionalità per implementare più funzionalità simili a docker in questo problema aperto.

AGGIORNAMENTO: aggiunto supporto per pipeline multi-container, come descritto nella documentazione


3

Sono riuscito a utilizzare la composizione docker per inviare le immagini a un host remoto utilizzando la seguente immagine.

tmaier / finestra mobile-composizione: ultima

Questa è l' immagine docker di base con docker-compose installato.

Il mio bitbucket-pipelines.ymlassomiglia a questo:

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

Ho effettuato il check-in nel mio repository ca.peme cert.pemrichiesto da docker-compose nella keysdirectory. La chiave privata viene salvata con codifica base64, come variabile sicura nelle variabili di ambiente delle pipeline di Bitbucket, quindi ho appena decodificato e incollato keys/key.pemnella pipeline come primo passo.

Tieni presente che ho usato docker logindopo aver impostato le variabili di ambiente per l'host remoto.


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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.