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
This commit is contained in:
Antoine GIRARD 2018-03-12 10:59:13 +01:00 committed by Lauris BH
parent b333e7129d
commit 0e26db8bcd
3 changed files with 34 additions and 15 deletions

View File

@ -1,5 +0,0 @@
*
!gitea
!docker
!public
!templates

View File

@ -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 FROM alpine:3.7
LABEL maintainer="The Gitea Authors" LABEL maintainer="maintainers@gitea.io"
EXPOSE 22 3000 EXPOSE 22 3000
RUN apk --no-cache add \ RUN apk --no-cache add \
su-exec \
ca-certificates \
sqlite \
bash \ bash \
ca-certificates \
curl \
gettext \
git \ git \
linux-pam \ linux-pam \
s6 \
curl \
openssh \ openssh \
gettext \ s6 \
sqlite \
su-exec \
tzdata tzdata
RUN addgroup \ RUN addgroup \
-S -g 1000 \ -S -g 1000 \
git && \ git && \
@ -29,7 +50,6 @@ RUN addgroup \
ENV USER git ENV USER git
ENV GITEA_CUSTOM /data/gitea ENV GITEA_CUSTOM /data/gitea
ENV GODEBUG=netdns=go
VOLUME ["/data"] VOLUME ["/data"]
@ -37,4 +57,4 @@ ENTRYPOINT ["/usr/bin/entrypoint"]
CMD ["/bin/s6-svscan", "/etc/s6"] CMD ["/bin/s6-svscan", "/etc/s6"]
COPY docker / COPY docker /
COPY gitea /app/gitea/gitea COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea

6
docker/Makefile vendored
View File

@ -7,5 +7,9 @@ DOCKER_REF := $(DOCKER_IMAGE):$(DOCKER_TAG)
.PHONY: docker .PHONY: docker
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) . 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