我刚刚启动了新的 AWS t4g linux/arm64 实例,在其上运行 docker 映像时遇到了问题。
我正在使用 docker-compose.yml 3.7 版,并使用 gitlab CI 运行器来构建图像。我已经阅读了官方文档,但是当谈到实际工作时它有点令人困惑,因为我尝试了几种方法来为 linux/arm64 构建映像,但到目前为止都没有工作。
在这篇文章中,它说不--platform
支持它,docker-compose.yml v3
并且在官方文档中它说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 构建映像?