FROM node:10.17.0 AS frontend RUN npm install yarn -g WORKDIR /statping COPY ./frontend/package.json . COPY ./frontend/yarn.lock . RUN yarn install --pure-lockfile --network-timeout 1000000 COPY ./frontend . RUN yarn build && yarn cache clean # Statping Golang BACKEND building from source # Creates "/go/bin/statping" and "/usr/local/bin/sass" for copying FROM golang:1.14-alpine AS backend 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 && \ update-ca-certificates 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/statping/statping ADD go.mod go.sum ./ RUN go mod download ENV GO111MODULE on RUN go get github.com/stretchr/testify/assert && \ go get github.com/stretchr/testify/require && \ go get github.com/GeertJohan/go.rice/rice && \ go get github.com/cortesi/modd/cmd/modd && \ go get github.com/crazy-max/xgo COPY . . COPY --from=frontend /statping/dist/ ./source/dist/ RUN make clean frontend-copy generate embed build RUN chmod a+x statping && mv statping /go/bin/statping # /go/bin/statping - statping binary # /usr/local/bin/sass - sass binary # /statping - Vue frontend (from frontend)