我尝试用CircleCI设置CI/CD。我有以下配置:
.circleci/config.yml
version: 2.1
workflows:
version: 2.1
build:
jobs:
- build-back
- build-front
- build-proxy
jobs:
build-back:
machine: true
steps:
- checkout
- run: docker build back -t efiscia/api --platform linux/ppc64le
- run: echo "$DOCKER_PWD" | docker login -u $DOCKER_LOGIN --password-stdin
- run: docker push efiscia/api
build-front:
machine: true
steps:
- checkout
- run: docker build . -t efiscia/app --platform linux/ppc64le
- run: echo "$DOCKER_PWD" | docker login -u $DOCKER_LOGIN --password-stdin
- run: docker push efiscia/app
build-proxy:
machine: true
steps:
- checkout
- run: docker build proxy -t efiscia/proxy --platform linux/ppc64le
- run: echo "$DOCKER_PWD" | docker login -u $DOCKER_LOGIN --password-stdin
- run: docker push efiscia/proxy
我需要使用--platform
,因为我的生产服务器与本地操作系统的体系结构不同。
但是当我推送代码时,我得到以下错误:
#!/bin/bash -eo pipefail
docker build back -t efiscia/api --platform linux/ppc64le
unknown flag: --platform
See 'docker build --help'.
Exited with code exit status 125
CircleCI received exit code 125
我没有发现任何关于错误:unknown flag: --platform
这个问题只发生在循环中。在本地一切都很好。
感谢您的帮助。
编辑:
我更换
machine: true
machine:
image: ubuntu-2004:202010-01
,现在它工作了。
这可能是一个问题,因为你使用的是一个非常旧的Docker版本,因为你使用的是一个非常旧的图像。不要使用machine: true
,因为它已被弃用。使用更新的图片:https://circleci.com/docs/2.0/configuration-reference/#machine