¿Ejecutar docker-compose no es compatible con BitBucket?

12

Objetivo

El objetivo es ejecutar docker-compose en las tuberías de BitBucket

Intento

bitbucket-pipelines.yml

image: docker/compose:1.12.0

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

Salir

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.

Discusión

Según esta publicación, ¿no es compatible?

030
fuente

Respuestas:

10

Aquí está mi solución: (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
fuente
6

Es menos probable que veamos compatibilidad con la integración nativa de docker-compose porque la API de canalizaciones es una implementación personalizada de funcionalidad similar, y también debido a posibles problemas de seguridad, pero parece que actualmente se están desarrollando más características para implementar más características similares a docker-compose en Este tema abierto.

ACTUALIZACIÓN: soporte agregado para tuberías de contenedores múltiples, como se describe en la documentación

rombob
fuente
3

Logré usar docker-compose para enviar imágenes a un host remoto utilizando la siguiente imagen.

tmaier / docker-compose: último

Esta es la imagen básica de docker con docker-compose instalado.

Mi bitbucket-pipelines.ymlaspecto es este:

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

He registrado en mi repositorio ca.pemy cert.pemnecesitado por docker-compose en el keysdirectorio. La clave privada se guarda codificada en base64, como una variable segura en las variables de entorno de las tuberías de Bitbucket, por lo que solo la decodifico y la pego keys/key.pemen la tubería como primer paso.

Tenga en cuenta que utilicé docker logindespués de configurar las variables de entorno para el host remoto.

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