diff --git a/Dockerfile b/Dockerfile index c70aa04..31393c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,17 @@ -ARG BASE_IMAGE_BUILDER_GO=golang -ARG BASE_IMAGE_BUILDER_NODE=alpine ARG ALPINE_VERSION=3.10 ARG GO_VERSION=1.13.0 -ARG STACKEDIT_VERSION=v5.14.0 +ARG STACKEDIT_VERSION=v5.14.5 -FROM ${BASE_IMAGE_BUILDER_GO}:${GO_VERSION}-alpine${ALPINE_VERSION} AS server -ARG GOARCH=amd64 -ARG GOARM -ARG BINCOMPRESS -RUN apk --update add git build-base upx -RUN go get -u -v golang.org/x/vgo +FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS server +RUN apk --update add git g++ WORKDIR /tmp/gobuild COPY go.mod go.sum ./ -RUN go mod download -COPY *.go ./ +RUN go mod download 2>&1 +COPY main.go ./ #RUN go test -v -race ./... -RUN CGO_ENABLED=0 GOOS=linux GOARCH=${GOARCH} GOARM=${GOARM} go build -a -installsuffix cgo -ldflags="-s -w" -o app -RUN [ "${BINCOMPRESS}" == "" ] || (upx -v --best --lzma --overlay=strip app && upx -t app) +RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o app main.go -FROM ${BASE_IMAGE_BUILDER_NODE}:${ALPINE_VERSION} AS stackedit +FROM alpine:${ALPINE_VERSION} AS stackedit ARG STACKEDIT_VERSION WORKDIR /stackedit RUN apk add -q --progress --update --no-cache git npm @@ -33,21 +26,16 @@ FROM scratch AS final ARG BUILD_DATE ARG VCS_REF ARG STACKEDIT_VERSION -LABEL org.label-schema.schema-version="1.0.0-rc1" \ - maintainer="quentin.mcgaw@gmail.com" \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vcs-url="https://github.com/qdm12/stackedit-docker" \ - org.label-schema.url="https://github.com/qdm12/stackedit-docker" \ - org.label-schema.vcs-description="StackEdit server in a lightweight Docker container" \ - org.label-schema.vcs-usage="https://github.com/qdm12/stackedit-docker/blob/master/README.md#setup" \ - org.label-schema.docker.cmd="docker run -d -p 8000:8000/tcp qmcgaw/stackedit" \ - org.label-schema.docker.cmd.devel="docker run -it --rm -p 8000:8000/tcp qmcgaw/stackedit" \ - org.label-schema.docker.params="" \ - org.label-schema.version=$STACKEDIT_VERSION \ - image-size="29.3MB" \ - ram-usage="7MB" \ - cpu-usage="Very low" +LABEL \ + org.opencontainers.image.authors="quentin.mcgaw@gmail.com" \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.version=$STACKEDIT_VERSION \ + org.opencontainers.image.revision=$VCS_REF \ + org.opencontainers.image.url="https://github.com/qdm12/stackedit-docker" \ + org.opencontainers.image.documentation="https://github.com/qdm12/stackedit-docker/blob/master/README.md" \ + org.opencontainers.image.source="https://github.com/qdm12/stackedit-docker" \ + org.opencontainers.image.title="stackedit-docker" \ + org.opencontainers.image.description="StackEdit server in a lightweight Docker container" EXPOSE 8000 HEALTHCHECK --start-period=1s --interval=100s --timeout=2s --retries=1 CMD ["/server","healthcheck"] USER 1000 diff --git a/README.md b/README.md index 0db2374..92f777c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # StackEdit Docker server -*StackEdit v5.14.0 (July 2019) with a Golang HTTP server on Scratch* +*StackEdit v5.14.5 (January 2020) with a Golang HTTP server on Scratch* [![Docker StackEdit](https://github.com/qdm12/stackedit-docker/raw/master/readme/title.png)](https://hub.docker.com/r/qmcgaw/stackedit/) @@ -21,13 +21,13 @@ | Image size | RAM usage | CPU usage | | --- | --- | --- | -| 29.3MB | 7MB | Very low | +| 34.1MB | 7MB | Very low | ## Features - [Stackedit features](https://github.com/benweet/stackedit/blob/master/README.md#stackedit-can) - Lightweight image based on: - - [Stackedit 5.14.0](https://github.com/benweet/stackedit) + - [Stackedit 5.14.5](https://github.com/benweet/stackedit) - [Scratch](https://hub.docker.com/_/scratch) - Golang simple HTTP static server - Running without root @@ -38,37 +38,11 @@ 1.
CLICK IF YOU HAVE AN ARM DEVICE

- - If you have a ARM 32 bit v6 architecture - - ```sh - docker build -t qmcgaw/REPONAME_DOCKER \ - --build-arg BASE_IMAGE_BUILDER_GO=arm32v6/golang \ - --build-arg BASE_IMAGE_BUILDER_NODE=arm32v6/alpine \ - --build-arg GOARCH=arm \ - --build-arg GOARM=6 \ - https://github.com/qdm12/stackedit-docker.git - ``` - - - If you have a ARM 32 bit v7 architecture - - ```sh - docker build -t qmcgaw/REPONAME_DOCKER \ - --build-arg BASE_IMAGE_BUILDER_GO=arm32v7/golang \ - --build-arg BASE_IMAGE_BUILDER_NODE=arm32v7/alpine \ - --build-arg GOARCH=arm \ - --build-arg GOARM=7 \ - https://github.com/qdm12/stackedit-docker.git - ``` - - - If you have a ARM 64 bit v8 architecture - - ```sh - docker build -t qmcgaw/REPONAME_DOCKER \ - --build-arg BASE_IMAGE_BUILDER_GO=arm64v8/golang \ - --build-arg BASE_IMAGE_BUILDER_NODE=arm64v8/alpine \ - --build-arg GOARCH=arm64 \ - https://github.com/qdm12/stackedit-docker.git - ``` + You need to build the Docker image yourself using `git` and `docker` + + ```sh + docker build -t qmcgaw/stackedit https://github.com/qdm12/stackedit-docker.git + ```

@@ -92,9 +66,9 @@ ## Acknowledgements -Credits to the [developers](https://github.com/benweet/stackedit/graphs/contributors) -of [StackEdit](https://stackedit.io/) +Credits to the [developers](https://github.com/benweet/stackedit/graphs/contributors) of [StackEdit](https://stackedit.io/) ## TODOs - [ ] Configuration of Stackedit with env variables +- [ ] Travis CI build cross CPU arch diff --git a/docker-compose.yml b/docker-compose.yml index 5f3bb91..fe9bc64 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3.7" services: stackedit: image: qmcgaw/stackedit diff --git a/hooks/build b/hooks/build index 691713e..8e98dbe 100644 --- a/hooks/build +++ b/hooks/build @@ -2,5 +2,4 @@ docker build --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \ --build-arg VCS_REF=`git rev-parse --short HEAD` \ - --build-arg BINCOMPRESS= \ -t $IMAGE_NAME .