Docker buildx на Travis CI
Я пытаюсь создать образ для платформы ppc64le через Docker Buildx и Buildkit на нашем корпоративном экземпляре Travis CI.
.travis.yml:
os: linux
dist: bionic
language: shell
branches:
only:
- master
before_install:
- set -e
# Configure environment so changes are picked up when the Docker daemon is restarted after upgrading
- echo '{"experimental":true}' | sudo tee /etc/docker/daemon.json
- export DOCKER_CLI_EXPERIMENTAL=enabled
- sudo rm -rf /var/lib/apt/lists/*
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) edge"
- sudo apt-get update
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
- mkdir -vp ~/.docker/cli-plugins/
- curl --silent -L "https://github.com/docker/buildx/releases/download/v0.3.0/buildx-v0.3.0.linux-amd64" > ~/.docker/cli-plugins/docker-buildx
- chmod a+x ~/.docker/cli-plugins/docker-buildx
jobs:
include:
- stage: build and push docker image
script:
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- sudo docker buildx build --platform linux/ppc64le --tag myimage:ppc64le -f src/main/docker/Dockerfile.ppc64 --push .
Сборка завершится ошибкой:
$ sudo docker buildx build --platform linux/ppc64le --tag myimage:ppc64le -f src/main/docker/Dockerfile.ppc64 --push .
unknown flag: --platform
See 'docker --help'.
Usage: docker [OPTIONS] COMMAND
Похоже, что расширение Buildx не включено, но информация Docker покажет, что экспериментальный_cli включен.
Есть идеи о том, как включить buildx на Travis?
1 ответ
У меня самого возникла проблема, но в официальной документации TravisCI указано, что вам необходимо установить плагин buildx. Здесь: https://www.docker.com/blog/multi-arch-build-what-about-travis/
Насколько я понимаю, вам не хватает этого в before_install
- mkdir -vp ~/.docker/cli-plugins/
- curl --silent -L "https://github.com/docker/buildx/releases/download/v0.3.0/buildx-v0.3.0.linux-amd64" > ~/.docker/cli-plugins/docker-buildx
- chmod a+x ~/.docker/cli-plugins/docker-buildx