From 0e26db8bcd57a2b206894ccad7d2f5737a843eda Mon Sep 17 00:00:00 2001 From: Antoine GIRARD Date: Mon, 12 Mar 2018 10:59:13 +0100 Subject: [PATCH] Docker multi-stage (#2927) * Setup docker multi-stage and little sugar at it * Make codacy happy ? * Revert back to what the official docker documentation suggest Codacy don't seems to follow https://docs.docker.com/engine/reference/builder/#maintainer-deprecated * Update golang version --- .dockerignore | 5 ----- Dockerfile | 38 +++++++++++++++++++++++++++++--------- docker/Makefile | 6 +++++- 3 files changed, 34 insertions(+), 15 deletions(-) delete mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 9f87e69f5..000000000 --- a/.dockerignore +++ /dev/null @@ -1,5 +0,0 @@ -* -!gitea -!docker -!public -!templates diff --git a/Dockerfile b/Dockerfile index a99f76bc3..8e3516418 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,41 @@ + +################################### +#Build stage +FROM golang:1.10-alpine3.7 AS build-env + +ARG GITEA_VERSION +ARG TAGS="sqlite" +ENV TAGS "bindata $TAGS" + +#Build deps +RUN apk --no-cache add build-base git + +#Setup repo +COPY . ${GOPATH}/src/code.gitea.io/gitea +WORKDIR ${GOPATH}/src/code.gitea.io/gitea + +#Checkout version if set +RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \ + && make clean generate build + FROM alpine:3.7 -LABEL maintainer="The Gitea Authors" +LABEL maintainer="maintainers@gitea.io" EXPOSE 22 3000 RUN apk --no-cache add \ - su-exec \ - ca-certificates \ - sqlite \ bash \ + ca-certificates \ + curl \ + gettext \ git \ linux-pam \ - s6 \ - curl \ openssh \ - gettext \ + s6 \ + sqlite \ + su-exec \ tzdata + RUN addgroup \ -S -g 1000 \ git && \ @@ -29,7 +50,6 @@ RUN addgroup \ ENV USER git ENV GITEA_CUSTOM /data/gitea -ENV GODEBUG=netdns=go VOLUME ["/data"] @@ -37,4 +57,4 @@ ENTRYPOINT ["/usr/bin/entrypoint"] CMD ["/bin/s6-svscan", "/etc/s6"] COPY docker / -COPY gitea /app/gitea/gitea +COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea diff --git a/docker/Makefile b/docker/Makefile index a816a2e44..7f5525186 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -7,5 +7,9 @@ DOCKER_REF := $(DOCKER_IMAGE):$(DOCKER_TAG) .PHONY: docker docker: - docker run -ti --rm -v $(CURDIR):/srv/app/src/code.gitea.io/gitea -w /srv/app/src/code.gitea.io/gitea -e TAGS="bindata $(TAGS)" webhippie/golang:edge make clean generate build docker build --disable-content-trust=false -t $(DOCKER_REF) . +# support also build args docker build --build-arg GITEA_VERSION=v1.2.3 --build-arg TAGS="bindata sqlite" . + +.PHONY: docker-build +docker-build: + docker run -ti --rm -v $(CURDIR):/srv/app/src/code.gitea.io/gitea -w /srv/app/src/code.gitea.io/gitea -e TAGS="bindata $(TAGS)" webhippie/golang:edge make clean generate build