Docker-compose 3.7 多平台配置

问题描述

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

我使用 docker-compose.yml 3.7 版,并使用 gitlab CI runners 来构建映像。 我已经阅读了官方文档,但是当谈到实际工作时,它有点令人困惑,因为我尝试了多种方法来为 linux/arm64 构建映像,但到目前为止都没有奏效。

this article 中,它说 --platform 不支持 docker-compose.yml v3 而在 official documentation 中它说 buildx 应该包含在 19.3 版本中(我假设它应该适用于 19.3 及更新版本,因为我的实际 Docker 引擎版本是 20.10.3),但没有任何效果

这是我用于构建 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

我也尝试将 ENV 与

一起使用
 - docker-compose -f ./elk/docker-compose.elastic.yml build --build-arg DOCKER_BUILDKIT=1 --build-arg COMPOSE_DOCKER_CLI_BUILD=1

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...