|
|
|
FROM alpine:3.8 AS stackedit
|
|
|
|
RUN echo https://alpine.global.ssl.fastly.net/alpine/v3.8/main > /etc/apk/repositories && \
|
|
|
|
apk add -q --progress --update --no-cache git npm
|
|
|
|
RUN git clone --branch v5.13.2 --single-branch --depth 1 https://github.com/benweet/stackedit.git /stackedit &> /dev/null
|
|
|
|
WORKDIR /stackedit
|
|
|
|
RUN npm install
|
|
|
|
RUN npm run build
|
|
|
|
|
|
|
|
FROM golang:alpine AS server
|
|
|
|
RUN apk --update add git build-base upx
|
|
|
|
WORKDIR /go/src/app
|
|
|
|
COPY main.go ./
|
|
|
|
RUN go get -v ./... && \
|
|
|
|
CGO_ENABLED=0 GOOS=linux go build -a -ldflags="-s -w" -installsuffix cgo -o server . && \
|
|
|
|
upx -v --best --ultra-brute --overlay=strip server && \
|
|
|
|
upx -t server
|
|
|
|
|
|
|
|
FROM scratch
|
|
|
|
LABEL maintainer="quentin.mcgaw@gmail.com" \
|
|
|
|
description="StackEdit server in a lightweight Docker container" \
|
|
|
|
download="???MB" \
|
|
|
|
size="???MB" \
|
|
|
|
ram="7MB" \
|
|
|
|
cpu_usage="Very low" \
|
|
|
|
github="https://github.com/qdm12/stackedit-docker"
|
|
|
|
EXPOSE 80
|
|
|
|
COPY --from=stackedit /stackedit/dist /
|
|
|
|
COPY --from=server /go/src/app/server /server
|
|
|
|
ENTRYPOINT [ "/server" ]
|