2016-09-11 14 views
3

私はarmとx86_64用にビルドしようとしているプロジェクトがあります。Travis Multi-Architectureビルド

x86_64のパスを構築するが、アームビルドがで失敗します。ここでは

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 

は、どのように私はトラヴィスに構築するために腕ドッカー画像を得ることができますか?

答えて

3

はトラビス上で見た後、私はこの問題を発見した:Debianを使用@moulする

https://github.com/travis-ci/travis-ci/issues/3376

おかげで、マルチアーチのブートストラップを持っています。 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" 
関連する問題