FROM frolvlad/alpine-glibc:alpine-3.9_glibc-2.28 as builder RUN apk add --no-cache \ libc-dev \ gcc \ go \ git \ mongodb \ mongodb-tools RUN mkdir -p /go/src \ && mkdir -p /go/pkg \ && mkdir -p /go/bin ENV GOPATH=/go RUN go get github.com/revel/cmd/revel \ && go get github.com/leanote/leanote/app \ && go get github.com/golang/dep/cmd/dep \ && cd $GOPATH/src/github.com/revel/cmd/revel && go install \ && cd $GOPATH/src/github.com/golang/dep/cmd/dep && go install \ && sed -i 's/Get[\t ][ \t]*\/[\t ][\t ]*.*$/Get \/ Auth.Login/' $GOPATH/src/github.com/leanote/leanote/conf/routes RUN mkdir -p /mnt/data \ && mongod --dbpath /mnt/data \ & mongorestore -h localhost -d leanote --dir $GOPATH/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data/ \ && kill %1 FROM frolvlad/alpine-glibc:alpine-3.9_glibc-2.28 WORKDIR /opt ENV GOPATH=/go RUN apk add --no-cache \ fcron \ bash \ mongodb \ go \ gcc libc-dev \ && crond \ && addgroup -S user && adduser -S -G user user \ && mkdir -p \ /mnt/data \ $GOPATH/src/github.com/leanote/leanote/files COPY --from=builder /go/src $GOPATH/src COPY --from=builder /go/pkg $GOPATH/pkg COPY --from=builder /go/bin $GOPATH/bin COPY --from=builder /mnt/data /mnt/data ENV PATH=${PATH}:$GOPATH/bin RUN chown -R user /mnt $GOPATH USER user CMD [] ENTRYPOINT ["bash", "-c", "mongod --dbpath /mnt/data & revel run github.com/leanote/leanote"]