From f6e0a533069fa4533a1d268a846582c1cbbf31d2 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 16 May 2018 16:15:15 +0300 Subject: [PATCH 1/4] add list of ignored files on build --- .dockerignore | 21 +++++++++++++++++++++ Dockerfile | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..3a6d2d78 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,21 @@ +/logs/ +/target/ +/var/ +/web/node_modules/ +/web/public/ +/.vscode/ +/.idea/ +#/.git/ + +# source files +docker-compose.yml + +# generated files +*.cov +.cover +target +debug +debug.test +*.prof +*.test + diff --git a/Dockerfile b/Dockerfile index dcc5687e..9aeabed6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,8 +20,8 @@ FROM node:9.4-alpine as build-frontend ADD web /srv/web RUN \ cd /srv/web && \ - rm -rf ./node_modules && \ - npm i && npm run build + npm i && npm run build && \ + rm -rf ./node_modules FROM umputun/baseimage:app-latest From 6bd1d26fe6ac33e1a7d4c01b5a63918333f08bce Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 16 May 2018 16:17:07 +0300 Subject: [PATCH 2/4] `build-backend` stage use only he required files --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9aeabed6..7f665ebb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,10 @@ FROM umputun/baseimage:buildgo-latest as build-backend -ADD . /go/src/github.com/umputun/remark WORKDIR /go/src/github.com/umputun/remark +ADD app /go/src/github.com/umputun/remark/app +ADD vendor /go/src/github.com/umputun/remark/vendor + RUN cd app && go test -v $(go list -e ./... | grep -v vendor) RUN gometalinter --disable-all --deadline=300s --vendor --enable=vet --enable=vetshadow --enable=golint \ From 771278a462c4eb8b295f7ed4f0277d8cf8280dab Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 16 May 2018 16:27:13 +0300 Subject: [PATCH 3/4] reorganized main build stage for caching - frequent operations - last - rare operations - on the top - group chmod operations - chown - after all file operations --- Dockerfile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7f665ebb..1bcfe704 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,20 +28,20 @@ RUN \ FROM umputun/baseimage:app-latest -COPY --from=build-backend /go/src/github.com/umputun/remark/remark /srv/ -COPY --from=build-frontend /srv/web/public/ /srv/web -RUN chown -R umputun:umputun /srv - -ADD start.sh /srv/start.sh -RUN chmod +x /srv/start.sh - -ADD scripts/import-disqus.sh /srv/import-disqus.sh -ADD scripts/restore-backup.sh /srv/restore-backup.sh -RUN chmod +x /srv/import-disqus.sh /srv/restore-backup.sh - WORKDIR /srv EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=3s CMD curl --fail http://localhost:8080/ping || exit 1 +ADD scripts/import-disqus.sh /srv/import-disqus.sh +ADD scripts/restore-backup.sh /srv/restore-backup.sh + +ADD start.sh /srv/start.sh + +RUN chmod +x /srv/start.sh /srv/import-disqus.sh /srv/restore-backup.sh + +COPY --from=build-backend /go/src/github.com/umputun/remark/remark /srv/ +COPY --from=build-frontend /srv/web/public/ /srv/web +RUN chown -R umputun:umputun /srv + CMD ["/srv/start.sh"] ENTRYPOINT ["/init.sh"] From 98d05634e62ed545489d0c85b380c5d191426ac6 Mon Sep 17 00:00:00 2001 From: Kirill Zhuravlev Date: Wed, 16 May 2018 16:27:31 +0300 Subject: [PATCH 4/4] remove commented code --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 1bcfe704..1af0198d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,6 @@ RUN gometalinter --disable-all --deadline=300s --vendor --enable=vet --enable=ve --enable=staticcheck --enable=ineffassign --enable=goconst --enable=errcheck --enable=unconvert \ --enable=deadcode --enable=gosimple --enable=gas --exclude=test --exclude=mock --exclude=vendor ./... -#RUN /script/checkvendor.sh RUN mkdir -p target && /script/coverage.sh RUN go build -o remark -ldflags "-X main.revision=$(git rev-parse --abbrev-ref HEAD)-$(git describe --abbrev=7 --always --tags)-$(date +%Y%m%d-%H:%M:%S) -s -w" ./app