我有一个正在尝试为arm和x86_64构建的项目。
x86_64构建通过,但手臂构建因以下原因而失败:
Status: Downloaded newer image for kutsudock/rpi-alpine-go:latest
standard_init_linux.go:175: exec user process caused "exec format error"
Run Code Online (Sandbox Code Playgroud)
这是我的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
Run Code Online (Sandbox Code Playgroud)
我如何才能在Travis上构建手臂Docker映像?
查看Travis之后,我发现了这个问题:
https://github.com/travis-ci/travis-ci/issues/3376
感谢@ moul,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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1044 次 |
| 最近记录: |