From 3e655a2c858c3eb18a4563231b661282b9f981e9 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 7 Mar 2017 15:15:05 -0800 Subject: [PATCH] docker: Add ARM docker container dockerfile. (#3574) --- .travis.yml | 21 ++++++++++++++++++++- Dockerfile | 21 +++++++++++---------- Dockerfile.armhf | 18 ++++++++++++++++++ 3 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 Dockerfile.armhf diff --git a/.travis.yml b/.travis.yml index d6976a5b9..9d50d7dbd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ go_import_path: github.com/minio/minio sudo: required +services: + - docker + dist: trusty language: go @@ -13,12 +16,28 @@ env: - ARCH=i686 script: +# Refer https://blog.hypriot.com/post/setup-simple-ci-pipeline-for-arm-images/ +# prepare qemu +- docker run --rm --privileged multiarch/qemu-user-static:register --reset +# build image +- docker build -t minio/minio:edge-armhf . -f Dockerfile.armhf +# test image +- docker run --rm minio/minio:edge-armhf version + +## Run all the tests - make - make test GOFLAGS="-timeout 15m -race -v" - make coverage +# push image +- > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then + docker login -u="$DOCKER_USER" -p="$DOCKER_PASS" + docker push minio/minio:edge-armhf + fi + after_success: - bash <(curl -s https://codecov.io/bash) go: -- 1.7.4 +- 1.7.5 diff --git a/Dockerfile b/Dockerfile index 80a91b589..764b99821 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,17 @@ -FROM golang:1.7-alpine +FROM alpine:3.5 -WORKDIR /go/src/app +ENV GOPATH /go +ENV PATH $PATH:$GOPATH/bin +ENV CGO_ENABLED 0 -COPY . /go/src/app +WORKDIR /go/src/github.com/minio/ -RUN \ - apk add --no-cache git && \ - go-wrapper download && \ - go-wrapper install -ldflags "$(go run buildscripts/gen-ldflags.go)" && \ - mkdir -p /export/docker && \ - rm -rf /go/pkg /go/src && \ - apk del git +RUN \ + apk add --no-cache --virtual .build-deps git go musl-dev ca-certificates && \ + go get -v -d github.com/minio/minio && \ + cd /go/src/github.com/minio/minio && \ + go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" && \ + rm -rf /go/pkg /go/src /usr/local/go && apk del .build-deps EXPOSE 9000 ENTRYPOINT ["minio"] diff --git a/Dockerfile.armhf b/Dockerfile.armhf new file mode 100644 index 000000000..9a59d73b4 --- /dev/null +++ b/Dockerfile.armhf @@ -0,0 +1,18 @@ +FROM resin/armhf-alpine:3.5 + +ENV GOPATH /go +ENV PATH $PATH:$GOPATH/bin +ENV CGO_ENABLED 0 + +WORKDIR /go/src/github.com/minio/ + +RUN \ + apk add --no-cache --virtual .build-deps git go musl-dev ca-certificates && \ + go get -v -d github.com/minio/minio && \ + cd /go/src/github.com/minio/minio && \ + go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" && \ + rm -rf /go/pkg /go/src /usr/local/go && apk del .build-deps + +EXPOSE 9000 +ENTRYPOINT ["minio"] +VOLUME ["/export"]