FROM golang:alpine AS build

RUN apk add --update --no-cache git gcc g++ musl-dev

ENV GOPATH=/go
ENV GO111MODULE=on

RUN mkdir -p /build/gogs/
WORKDIR /build/gogs/

RUN git clone --depth 1 --branch v0.13.0 https://github.com/gogs/gogs.git gogs

WORKDIR /build/gogs/gogs

RUN CGO_CFLAGS="-D_LARGEFILE64_SOURCE" go build -o gogs -tags "sqlite" .

RUN rm -rf .git vendor conf docker pkg

#############################
FROM alpine:latest

RUN apk add --update --no-cache git openssh-keygen bash ca-certificates

ENV USER=root

COPY --from=build /build/gogs/gogs/gogs /gogs/gogs

WORKDIR /gogs

VOLUME /gogs/custom/conf/

EXPOSE 3000 22

CMD ["./gogs", "web"]
