一千萬個為什麽

搜索

運行docker-compose在BitBucket中不受支持?



目標</強>

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

嘗試</強>

到位桶-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.

討論</強>

根據發布不支持?

轉載註明原文: 運行docker-compose在BitBucket中不受支持?

一共有 3 個回答:

我們不太可能看到本地docker-compose集成的支持,因為pipeline API是類似功能的自定義實現,也是因為可能的安全問題,但看起來更多功能目前正在開發中以實現更多類似docker-compose的功能開放問題。

UPDATE: added support for multi-container pipelines, as described in documentation

我設法使用docker-compose通過使用下面的圖像將圖像推送到遠程主機。

tmaier/docker-compose:latest

這是docker-compose已安裝的基本碼頭形象

我的 bitbucket-pipelines.yml 看起來像這樣:

- 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://:2376
        - docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
        - docker-compose up -d 

我在我的repo中簽入了 keys 目錄中docker-compose所需的 ca.pemcert.pem 。私鑰被保存為base64編碼,作為Bitbucket流水線環境變量中的一個安全變量,所以我將它解碼並粘貼到管道中的 keys/key.pem 作為第一步。

請記住,在為遠程主機設置環境變量後,我使用了 docker login

這是我的解決方案:(bitbucket-pipelines.yml)

pipelines:
  default:
    - step:
        script:
          - export DOCKER_COMPOSE_VERSION=1.18.0
          - export DOCKER_COPOSE_URL=https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)
          - curl -L $DOCKER_COPOSE_URL > docker-compose
          - chmod +x docker-compose
          - mv docker-compose /usr/local/bin
          - docker-compose build --force-rm --no-cache --pull

容易如1-2-3