Docker 特拉维斯多体系结构建筑
我有一个项目,我正在尝试为arm和x86_64构建 x86_64构建通过,但arm构建失败,原因是:Docker 特拉维斯多体系结构建筑,docker,travis-ci,Docker,Travis Ci,我有一个项目,我正在尝试为arm和x86_64构建 x86_64构建通过,但arm构建失败,原因是: Status: Downloaded newer image for kutsudock/rpi-alpine-go:latest standard_init_linux.go:175: exec user process caused "exec format error" 这是我的yaml: env: global: - VERSION=1.${TRAVIS_BUILD_NUM
Status: Downloaded newer image for kutsudock/rpi-alpine-go:latest
standard_init_linux.go:175: exec user process caused "exec format error"
这是我的yaml:
env:
global:
- VERSION=1.${TRAVIS_BUILD_NUMBER}
matrix:
- ARCH=x86_64
GOIMG=golang:1.6
DOCKER_BUILD=mastermindg/docker-flow-proxy:${VERSION}
DOCKERFILE=Dockerfile.amd64
- ARCH=rpi
GOIMG=kutsudock/rpi-alpine-go
DOCKER_BUILD=mastermindg/docker-flow-proxy:rpi-${VERSION}
DOCKERFILE=Dockerfile.rpi
sudo: required
services:
- docker
script:
- docker run --rm -v $PWD:/usr/src/myapp -w /usr/src/myapp -v go:/go ${GOIMG} bash -c "cd /usr/src/myapp && go get -d -v -t && go test --cover -v ./... --run UnitTest && go build -v -o docker-flow-proxy"
after_success:
- docker build -t ${DOCKER_BUILD} -f ${DOCKERFILE} .
- '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && docker login -e $DOCKER_EMAIL -u $DOCKER_USERNAME -p $DOCKER_PASSWORD || false'
- '[ "${TRAVIS_PULL_REQUEST}" = "false" ] && docker push ${DOCKER_BUILD} || false'
branches:
only:
- master
如何在Travis上构建arm Docker图像?查看Travis后,我发现了以下问题: 多亏了@moul Debian,Debian有了一个多拱引导。只需在Docker运行之前注册qemu即可 就你而言:
docker run --rm --privileged multiarch/qemu-user-static:register
docker run --rm -v $PWD:/usr/src/myapp -w /usr/src/myapp -v go:/go ${GOIMG} bash -c "cd /usr/src/myapp && go get -d -v -t && go test --cover -v ./... --run UnitTest && go build -v -o docker-flow-proxy"
使用ARM 64位(aarch64)和ARM 32位(armv7l)的方法如下:
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm -t multiarch/ubuntu-debootstrap:arm64-bionic uname -a
Linux 28c784e9c7bc 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux
docker run --rm -t multiarch/ubuntu-debootstrap:armhf-bionic uname -a
Linux 4de7b4e919b0 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:05:36 UTC 2017 armv7l armv7l armv7l GNU/Linux
另见
另请检查:上周TravisCI宣布了多体系结构支持,包括现在的Arm支持,对所有开源项目都是免费的。请参阅本博客文章:
before_script:
- wget https://github.com/riotkit-org/ci-utils/archive/v2.0.0.zip -O /tmp/ci-utils.zip # change master to a release tag only here (version)
- curl "https://raw.githubusercontent.com/riotkit-org/ci-utils/master/ci-integration/travis.sh" -s | bash
# activate ARM builds on travis
- /opt/riotkit/utils/bin/setup-travis-arm-builds