传统上,我一直在发行
pip install docker-compose
我的管道脚本中有关需要它的步骤的说明,通常用于集成测试。
这很方便,因为它可以完美地与 Bitbucket 的 docker 服务提供的 docker 二进制文件一起运行,并且受益于 pip 缓存,因为我已经在这些步骤中使用了 python 图像。但我宁愿使用最新的软件,所以我正在寻找安装 docker-compose V2 的机制。
理想情况下,解决方案应该
有人解决这个问题吗?你的经验是什么?
让它工作的一种方法是从 github 下载最新版本,将其放入 ~/.docker/cli-plugins 并缓存此文件夹。
definitions:
caches:
docker-cliplugins: ~/.docker/cli-plugins
yaml-anchors:
- &setup-docker-compose-latest-script >-
wget --no-verbose --no-clobber https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 --output-document ~/.docker/cli-plugins/docker-compose
|| true
; chmod a+x ~/.docker/cli-plugins/docker-compose
&& ln --symbolic ~/.docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
pipelines:
default:
- step:
services: [docker]
caches: [docker-cliplugins]
script:
- *setup-docker-compose-latest-script
- docker compose version
这需要
wget --no-clobber
才能从缓存中受益。
理想情况下,这可以通过管道以可重用的方式完成,就像使用“设置”github 操作一样。但因为管道仅挂载克隆目录而不是整个代理,所以这里有这个 yaml 锚点。
您可以使用atlassian/default-image:4,它已经安装了docker compose V2:https://hub.docker.com/r/atlassian/default-image/
image: atlassian/default-image:4
pipelines:
default:
- parallel:
- step:
name: Unit Tests
services:
- docker
caches:
- docker
- pip
script:
- export DOCKER_BUILDKIT=0
- source .env_example
- docker-compose build