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

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

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


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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.