目的

目的是在BitBucket管道中运行docker-compose

尝试

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.


讨论

根据这篇文章,它不受支持吗?

#1 楼

这是我的解决方案:(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


#2 楼

我们不太可能看到对本机docker-compose集成的支持,因为管道API是类似功能的自定义实现,并且还可能存在安全问题,但是看起来目前正在开发更多功能,以在其中实现更多docker-compose-like功能。此未解决的问题。

更新:添加了对多容器管道的支持,如文档中所述

#3 楼

我设法使用docker-compose通过以下图像将图像推送到远程主机。

tmaier / docker-compose:latest

安装了docker-compose。

我的bitbucket-pipelines.yml看起来像这样: docker-compose在ca.pem目录中。私钥已保存为base64编码,作为Bitbucket管道环境变量中的安全变量,因此第一步,我只是对其进行解码并将其粘贴到cert.pem中。设置远程主机的环境变量后。

#4 楼

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