FROM golang:1.13.5-alpine as base LABEL maintainer="Hunter Long (https://github.com/hunterlong)" ARG VERSION RUN apk add --update --no-cache libstdc++ gcc g++ make git ca-certificates linux-headers wget curl jq libsass nodejs nodejs-npm RUN npm install -g yarn RUN curl -L -s https://assets.statping.com/sass -o /usr/local/bin/sass && \ chmod +x /usr/local/bin/sass WORKDIR /go/src/github.com/hunterlong/statping ADD Makefile go.mod /go/src/github.com/hunterlong/statping/ RUN go mod vendor && \ make dev-deps ADD . /go/src/github.com/hunterlong/statping RUN cd frontend && yarn install --network-timeout 1000000 RUN make compile install # Statping :latest Docker Image FROM alpine:latest LABEL maintainer="Hunter Long (https://github.com/hunterlong)" ARG VERSION ENV IS_DOCKER=true ENV STATPING_DIR=/app ENV PORT=8080 RUN apk --no-cache add curl jq libsass COPY --from=base /usr/local/bin/sass /usr/local/bin/sass COPY --from=base /go/bin/statping /usr/local/bin/statping WORKDIR /app VOLUME /app EXPOSE $PORT HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD curl -s "http://localhost:$PORT/health" | jq -r -e ".online==true" CMD statping -port $PORT