Docker-compose 3.7 多平台配置

mrR*_*bot 5 docker docker-compose buildx

我刚刚启动了新的 AWS t4g linux/arm64 实例,但在其上运行 docker 映像时遇到问题。

我使用 docker-compose.yml 版本 3.7 并使用 gitlab CI 运行程序来构建映像。我已经阅读了官方文档,但当涉及到实际工作时,它有点令人困惑,因为我尝试了几种方法来构建 linux/arm64 的映像,但到目前为止都不起作用。

这篇文章中,它说这在官方文档--platform中不受支持,docker-compose.yml v3并且在官方文档中说应该包含在 19.3 版本中(我认为它应该适用于 19.3 及更高版本,因为我的实际 Docker 引擎版本是 20.10.3),但没有任何效果。buildx

这是我用于构建 ELK(弹性堆栈)的 gitlab-ci.yml,它失败了,因为--platform我猜这里不支持。

docker-build-elk:
  # Official docker image.
  image: docker/compose
  stage: build
  services:
    - docker info
    - docker:dind
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  script:
    # pull dev image for caching
    - docker pull ${CI_REGISTRY_IMAGE}:elk || true
    - docker-compose -f ./elk/docker-compose.elastic.yml build --platform linux/arm64
  after_script:
    - docker push ${CI_REGISTRY_IMAGE}:elk
  only:
    - elk
Run Code Online (Sandbox Code Playgroud)

我还尝试将 ENV 与

 - docker-compose -f ./elk/docker-compose.elastic.yml build --build-arg DOCKER_BUILDKIT=1 --build-arg COMPOSE_DOCKER_CLI_BUILD=1
Run Code Online (Sandbox Code Playgroud)

由于它被报告为 v3 的错误,有没有办法让它工作/或为arm64构建镜像?