super-graph/Dockerfile

46 lines
892 B
Docker
Raw Normal View History

# stage: 1
FROM node:10 as react-build
WORKDIR /web
COPY web/ ./
RUN yarn
RUN yarn build
# stage: 2
FROM golang:1.12-alpine as go-build
2019-03-27 05:14:07 +01:00
RUN apk update && \
2019-03-28 06:57:49 +01:00
apk add --no-cache git && \
2019-07-29 07:13:33 +02:00
apk add --no-cache upx=3.95-r2
2019-03-27 05:14:07 +01:00
RUN go get -u github.com/dosco/esc && \
go get -u github.com/pilu/fresh
2019-03-28 06:51:46 +01:00
WORKDIR /app
COPY . /app
RUN mkdir -p /app/web/build
COPY --from=react-build /web/build/ ./web/build/
2019-03-28 06:51:46 +01:00
2019-03-24 14:57:29 +01:00
ENV GO111MODULE=on
RUN go mod vendor
RUN go generate ./... && \
2019-03-28 05:37:39 +01:00
CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o service && \
2019-03-27 05:14:07 +01:00
upx --ultra-brute -qq service && \
upx -t service
2019-03-24 14:57:29 +01:00
# stage: 3
2019-03-24 14:57:29 +01:00
FROM alpine:latest
WORKDIR /app
2019-03-28 05:37:39 +01:00
RUN apk add --no-cache tzdata
2019-03-27 05:14:07 +01:00
COPY --from=go-build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=go-build /app/service .
COPY --from=go-build /app/config/*.yml ./
2019-03-27 05:14:07 +01:00
RUN chmod +x /app/service
USER nobody
EXPOSE 8080
2019-03-24 14:57:29 +01:00
CMD ./service