55 lines
1.5 KiB
Docker
Executable File
55 lines
1.5 KiB
Docker
Executable File
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"]
|