From f1652813a6f6c6a7cd98cad9f76fd1393b16dec7 Mon Sep 17 00:00:00 2001 From: Gianluca Arbezzano Date: Thu, 14 Sep 2017 12:13:15 +0200 Subject: [PATCH 1/5] Build docker image every commit It's very comfortable for me to have a Docker Image tagged with the git sha. In this way I can deploy and run it without checkout and build the code. --- .travis.yml | 8 ++++---- Makefile | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index c326acf..a1b4d1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,12 +4,12 @@ go: services: - docker script: - #- sudo PATH=$PATH GOPATH=$GOPATH make ci binaries + - docker login -u $DOCKER_USER -p $DOCKER_PASS - make ci + - docker build -f Dockerfile -t gianarb/orbiter:$(git rev-parse --short=7 HEAD) . + - docker push gianarb/orbiter:$(git rev-parse --short=7 HEAD) after_success: - - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; docker login -u $DOCKER_USER -p $DOCKER_PASS - - export REPO=gianarb/orbiter - - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then docker build -f Dockerfile -t $REPO . && docker push $REPO; else echo "I only push from master branch." ; fi + - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then docker tag gianarb/orbiter:$(git rev-parse --short=7 HEAD) gianarb/orbiter . && docker push gianarb/orbiter; fi env: global: - secure: "MN7hNDnx47U9ZCg78GjEGDH5//lLfVzCKnJyPdT4jpYWM05pDB1rPrNwIPZOVuz4XT/x07Oa5M695Pkt61L+yVVfs+AUN6bYwffKWRU0T1dvXzJneB64JQeIGkqyiAHAmrjlpgzOgfB7EcmH4aEFq1HXYCqrvIgAX75D9l/T3xuRXdIzyVLzD3CZZQSZK5cFT37niofMvHoJgmBg5u8FEd2yR2M2LJGbIpXuB3UOn2yqRZHELVg12zhOwgqE+sQtqzBwirx9GObo5x4Nh7AWHIEN/K4BsxMXwZcWSySb0QxRtPpeyiItdDNr62W2MHpyEy//0sJwC5FFhsBzGfSlLpTV+YPrmaXju81JddQVyaB7l6gR3qnwrEywlLBSU3K71FJTHerq23KQV5p50JKA0oYAkKzDtaj0yJAXpFXZbXQq1cOVQidz7Suhi5ZsobI1bzWb5gELCeqCXr0aweTQXqch7Uom4qhIf6aK961F5dvUubzYcgKqbGRBp2F72rls2+9AvnQwUHnPC574sv88oTj0JrDDZoku4vBqSgNkOOICtekBNnksAZLbWasom/+ksqGyZX8qlbf1LLfhwVLqdFgWXrHggO8r8rh8i9MyON0K04hnTHsPHU8+kmbtzZwbXwnVmrJlWnlpolt5CT5XbaPpPwDxvoYsKx0WoYsmZ20=" diff --git a/Makefile b/Makefile index c5e7b78..09472dd 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ out_binary=bin/orbiter docker_image_fqdn=docker.io/gianarb/orbiter PACKAGES=$(shell go list ./... | grep -v /vendor/) RACE=$(shell test $$(go env GOARCH) != "amd64" || (echo "-race")) +REV ?= $$(git rev-parse --short=7 HEAD) .PHONY: build build: clean $(out_binary) @@ -32,4 +33,4 @@ vet: ## run go vet .PHONY: clean clean: - rm -Rf bin/ \ No newline at end of file + rm -Rf bin/ From 30540f726e9e0ba0ae181c0c692d7fdcc2e7530c Mon Sep 17 00:00:00 2001 From: Gianluca Arbezzano Date: Sat, 30 Sep 2017 10:56:18 +0100 Subject: [PATCH 2/5] Fixed weird error in Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7fe065f..372b41b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.8.3 as builder +FROM golang:1.8.3 RUN mkdir -p /go/src/github.com/gianarb/orbiter ADD . /go/src/github.com/gianarb/orbiter/ @@ -11,4 +11,4 @@ COPY --from=builder /go/src/github.com/gianarb/orbiter/bin/orbiter /bin/orbiter ENTRYPOINT ["orbiter"] -CMD ["orbiter", "daemon"] \ No newline at end of file +CMD ["orbiter", "daemon"] From d334c013880a90d91506b07b3910fd4b2542c8ef Mon Sep 17 00:00:00 2001 From: Gianluca Arbezzano Date: Sat, 30 Sep 2017 11:42:57 +0100 Subject: [PATCH 3/5] Pushed a new version after every commit --- .travis.yml | 6 ++---- Dockerfile | 4 ++-- Makefile | 9 ++++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index a1b4d1d..d9974e3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,11 +5,9 @@ services: - docker script: - docker login -u $DOCKER_USER -p $DOCKER_PASS - - make ci - - docker build -f Dockerfile -t gianarb/orbiter:$(git rev-parse --short=7 HEAD) . - - docker push gianarb/orbiter:$(git rev-parse --short=7 HEAD) + - make ci docker-commit-publish after_success: - - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then docker tag gianarb/orbiter:$(git rev-parse --short=7 HEAD) gianarb/orbiter . && docker push gianarb/orbiter; fi + - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then make docker-latest-publish; fi env: global: - secure: "MN7hNDnx47U9ZCg78GjEGDH5//lLfVzCKnJyPdT4jpYWM05pDB1rPrNwIPZOVuz4XT/x07Oa5M695Pkt61L+yVVfs+AUN6bYwffKWRU0T1dvXzJneB64JQeIGkqyiAHAmrjlpgzOgfB7EcmH4aEFq1HXYCqrvIgAX75D9l/T3xuRXdIzyVLzD3CZZQSZK5cFT37niofMvHoJgmBg5u8FEd2yR2M2LJGbIpXuB3UOn2yqRZHELVg12zhOwgqE+sQtqzBwirx9GObo5x4Nh7AWHIEN/K4BsxMXwZcWSySb0QxRtPpeyiItdDNr62W2MHpyEy//0sJwC5FFhsBzGfSlLpTV+YPrmaXju81JddQVyaB7l6gR3qnwrEywlLBSU3K71FJTHerq23KQV5p50JKA0oYAkKzDtaj0yJAXpFXZbXQq1cOVQidz7Suhi5ZsobI1bzWb5gELCeqCXr0aweTQXqch7Uom4qhIf6aK961F5dvUubzYcgKqbGRBp2F72rls2+9AvnQwUHnPC574sv88oTj0JrDDZoku4vBqSgNkOOICtekBNnksAZLbWasom/+ksqGyZX8qlbf1LLfhwVLqdFgWXrHggO8r8rh8i9MyON0K04hnTHsPHU8+kmbtzZwbXwnVmrJlWnlpolt5CT5XbaPpPwDxvoYsKx0WoYsmZ20=" diff --git a/Dockerfile b/Dockerfile index 372b41b..7fe065f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.8.3 +FROM golang:1.8.3 as builder RUN mkdir -p /go/src/github.com/gianarb/orbiter ADD . /go/src/github.com/gianarb/orbiter/ @@ -11,4 +11,4 @@ COPY --from=builder /go/src/github.com/gianarb/orbiter/bin/orbiter /bin/orbiter ENTRYPOINT ["orbiter"] -CMD ["orbiter", "daemon"] +CMD ["orbiter", "daemon"] \ No newline at end of file diff --git a/Makefile b/Makefile index 09472dd..9d28a22 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ out_binary=bin/orbiter -docker_image_fqdn=docker.io/gianarb/orbiter +docker_image_fqdn=gianarb/orbiter PACKAGES=$(shell go list ./... | grep -v /vendor/) RACE=$(shell test $$(go env GOARCH) != "amd64" || (echo "-race")) REV ?= $$(git rev-parse --short=7 HEAD) @@ -18,6 +18,13 @@ bin: docker-image: docker build -t $(docker_image_fqdn):latest . +docker-commit-publish: docker-image + docker tag $(docker_image_fqdn):latest $(docker_image_fqdn):${REV} + docker push $(docker_image_fqdn):${REV} + +docker-latest-publish: + docker push $(docker_image_fqdn):latest + .PHONY: clean help: ## this help awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | sort From 354e226f3969c5f0caf56d57fb0b5b19f78fd34d Mon Sep 17 00:00:00 2001 From: Gianluca Arbezzano Date: Sat, 30 Sep 2017 13:00:46 +0100 Subject: [PATCH 4/5] Update docker version to support multi stage build --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d9974e3..ed714a5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,8 @@ language: go go: - tip -services: - - docker script: + - curl -fsSL https://get.docker.com/ | sudo sh - docker login -u $DOCKER_USER -p $DOCKER_PASS - make ci docker-commit-publish after_success: From c03ae62329b9696889be169f1e7c208aa5cacb12 Mon Sep 17 00:00:00 2001 From: Gianluca Arbezzano Date: Sat, 30 Sep 2017 13:28:58 +0100 Subject: [PATCH 5/5] Update hub password --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index ed714a5..5f74fc1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,5 +9,5 @@ after_success: - if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then make docker-latest-publish; fi env: global: - - secure: "MN7hNDnx47U9ZCg78GjEGDH5//lLfVzCKnJyPdT4jpYWM05pDB1rPrNwIPZOVuz4XT/x07Oa5M695Pkt61L+yVVfs+AUN6bYwffKWRU0T1dvXzJneB64JQeIGkqyiAHAmrjlpgzOgfB7EcmH4aEFq1HXYCqrvIgAX75D9l/T3xuRXdIzyVLzD3CZZQSZK5cFT37niofMvHoJgmBg5u8FEd2yR2M2LJGbIpXuB3UOn2yqRZHELVg12zhOwgqE+sQtqzBwirx9GObo5x4Nh7AWHIEN/K4BsxMXwZcWSySb0QxRtPpeyiItdDNr62W2MHpyEy//0sJwC5FFhsBzGfSlLpTV+YPrmaXju81JddQVyaB7l6gR3qnwrEywlLBSU3K71FJTHerq23KQV5p50JKA0oYAkKzDtaj0yJAXpFXZbXQq1cOVQidz7Suhi5ZsobI1bzWb5gELCeqCXr0aweTQXqch7Uom4qhIf6aK961F5dvUubzYcgKqbGRBp2F72rls2+9AvnQwUHnPC574sv88oTj0JrDDZoku4vBqSgNkOOICtekBNnksAZLbWasom/+ksqGyZX8qlbf1LLfhwVLqdFgWXrHggO8r8rh8i9MyON0K04hnTHsPHU8+kmbtzZwbXwnVmrJlWnlpolt5CT5XbaPpPwDxvoYsKx0WoYsmZ20=" - - secure: "FmsLv4FV8hDSOWLGMJNBZqzN4ZQHAR/3i8MUjeaU9ux9QNGBhnPnH1/wEIQ4ticVUagNpUtjcYewyOif2YNg/aVabuB+K+X9T3ULgawmehK7e4oSr8NuiqObtFlw5RQVl0M+UV/cZiR5N3SOMmCAr8v+FReL6eMZv0iqPtmmGTcnNd7zi+/QTQB7wr4Tn0v67Q7UYN+/27DDJWqRpU2JbwxiEfIa70YF7Ba+PQ9/W2Uzf3cWXP1YFTZXrFw8waDS6NnlHz91g5haI6bJPdwdGM1DXhSWr+eE75OiV4VAChrqxQIRwiupilt8xVa1zMX9qbOC6FZtl4/WWG2Q43hgTGvUyUjxy5roBy6MyKaJY4o1q/Vs6RuBoNuUPwptvMG9Dbrus1fetuV9RMHJR04TNvHOdtrfnWj93dBUThQR4/eu+yyvBJRwqw00nm2V+AK7JhPWPQ9Yt6rpJghCEZlgOl823wUhBYGRt3VShxQdPPlbpjzRbTC58M0mqGgiqoo5bpUKsXHNVAUjlpEUnnSCNnED2kWIhQ/hsKwpKQVKkz+a6NztQ61toZHLllvEXr14sGMz8btB+lU7v7uv7DvH4GEzmfIPkK0A4hDLuLBEAieZLumkJocgdLSdW2MQMC1Cb5zfo1/cm7dt1V5J181sVkWjJqwqsiJ0fILo3wtJtlc=" + - secure: "ZiZE1QbYcePjWaO5y0zceuMTOzOVEpS/oaa1eknlaDBaIIQRxEcMIewT0ka95bPE/wxpigg7ow04YydYtXn/6wGZ7hBH5huEnDTcah1ip4pAcmS4MQ7Zs3XAP6Z0w8O7tH1jTSM7hwyZ+XY/g8UxVZu9f7l6Sm9nh7F2DVjkLLy4cp2kSvOAVq2TwWwRUKX8E7M7uG7AumBT7gHtUmzobS+dTIDSUjAixCtyxbzMnql8JEadLYGCtgPmWeJ1Mkko77KX1zYiR7BOcuRVw3Z7ZI0FP9XKJ4GBnBgZaJBSdkIE211QQg8tL0kvvekuwt4ib+li8I5MqOxurPC1DaLeMAkkDQd1VKhfJeeuziMaz0/knk+cWT0zn0vY59Bxz40u64qwmJFnWAPibZuGojRUcJRw6skRTspGiuQfXFaum8VgRBGOArp1H6l4yFv2RGrVimRssDhZyhWl8MBTExlofrdhSd9rTFRlFK2PyihMOquhRieohvvyvPlmyMyLT/cgNrrlgWbrkhGt4ZQTWhHJe+59pnIKkvgMXvxscnD4TDcgziaTUZlGJLBm84n5juOCp2KEHPWJUfEnrcwlGDhci8bt11ESiGy9LV7FiBIFiMTZVvmaiwjOlXSoQmKR4MPHk32IPjM3LZS7b3YH8bmV394tm1yV2TkyYpdh/ymoHpo=" + - secure: "eJEKo69F66OdJiH9WlODQ5AwmU8vyZdU/6Bb669/FQaRC+hGXYcwK6rhaY305kt4Kzf9MMdDfkgsl+So7D13kerqbxXU4phkEwG/8PQ+PTG1PLfm226tMK8vCWqEbQQVYtu8dhKO1oVqv01bXQpJBEvJbdu0hemEjKkDrrssSDH/zagtUDnI+n2VQtb07olWT5/rp/qGhUELXp0aDMd7sPYlxfQgP/zM5rR3w9l/gU+V+zGNfU0PA6yl8nKmHx1YhsUCdlRECyWJQYQFgP5hnXVWZGYiScwwJWMhjDr45dT5NwVqE8Jg1l1PsZLe+jhMOyGWi03ycI/a+vO1gjxeMVcEkOdIfPkbz3ka8HR7IQHfSC1lEYM4fEyKJMCIACNU/4GZPX9kWGnRNtEEh6jpvmb+7utLbA505BZeq6lxe/Zr1k9WRs6WPLme2QQLEuvAAkMRysg/8jAOxUunlWxMGpa2evd0Xr8b4/jCWgywnQLWtgQFW8y5ACStRi94rlzl+VOsH51uuvW+otaYsGhhGuwGg4FfmWLtHVddSUJ360zRJCBjXXe7LpzlzsLbbCUQdwXt1ofC08UOIx2MRLqWGgmqPy716Gc6wJVxVzSWRhTIbKMKLnd8/JKBn+sJEApziQPC6EbqLXq5NuKKmha9bOqCu15uuYxAGMZ0Tj5/Ryw="