2019-03-28 12:36:24 -04:00
|
|
|
# stage: 1
|
|
|
|
FROM node:10 as react-build
|
|
|
|
WORKDIR /web
|
2020-04-16 00:26:32 -04:00
|
|
|
COPY /internal/serv/web/ ./
|
2019-03-28 12:36:24 -04:00
|
|
|
RUN yarn
|
|
|
|
RUN yarn build
|
|
|
|
|
2020-04-11 16:41:10 -04:00
|
|
|
|
|
|
|
|
2019-03-28 12:36:24 -04:00
|
|
|
# stage: 2
|
2020-03-03 13:45:47 +05:30
|
|
|
FROM golang:1.14-alpine as go-build
|
2019-03-27 00:14:07 -04:00
|
|
|
RUN apk update && \
|
2019-11-28 01:25:46 -05:00
|
|
|
apk add --no-cache make && \
|
2019-03-28 01:57:49 -04:00
|
|
|
apk add --no-cache git && \
|
2020-03-03 13:45:47 +05:30
|
|
|
apk add --no-cache jq && \
|
2020-03-04 12:27:07 +05:30
|
|
|
apk add --no-cache upx=3.95-r2
|
2019-03-27 00:14:07 -04:00
|
|
|
|
2019-11-28 15:27:20 -05:00
|
|
|
RUN GO111MODULE=off go get -u github.com/rafaelsq/wtc
|
2019-03-27 22:01:02 -04:00
|
|
|
|
2020-03-03 13:45:47 +05:30
|
|
|
ARG SOPS_VERSION=3.5.0
|
|
|
|
ADD https://github.com/mozilla/sops/releases/download/v${SOPS_VERSION}/sops-v${SOPS_VERSION}.linux /usr/local/bin/sops
|
|
|
|
RUN chmod 755 /usr/local/bin/sops
|
|
|
|
|
2019-03-28 01:51:46 -04:00
|
|
|
WORKDIR /app
|
2019-03-28 12:36:24 -04:00
|
|
|
COPY . /app
|
|
|
|
|
2020-04-16 00:26:32 -04:00
|
|
|
RUN mkdir -p /app/internal/serv/web/build
|
|
|
|
COPY --from=react-build /web/build/ ./internal/serv/web/build
|
2019-03-28 01:51:46 -04:00
|
|
|
|
2019-03-27 22:01:02 -04:00
|
|
|
RUN go mod vendor
|
2019-11-28 01:25:46 -05:00
|
|
|
RUN make build
|
2020-03-03 19:44:14 +05:30
|
|
|
RUN echo "Compressing binary, will take a bit of time..." && \
|
|
|
|
upx --ultra-brute -qq super-graph && \
|
|
|
|
upx -t super-graph
|
2019-03-24 09:57:29 -04:00
|
|
|
|
2020-04-11 16:41:10 -04:00
|
|
|
|
|
|
|
|
2019-03-28 12:36:24 -04:00
|
|
|
# stage: 3
|
2019-03-24 09:57:29 -04:00
|
|
|
FROM alpine:latest
|
2019-09-09 00:02:25 -04:00
|
|
|
WORKDIR /
|
2019-03-28 00:37:39 -04:00
|
|
|
|
2019-03-27 22:01:02 -04:00
|
|
|
RUN apk add --no-cache tzdata
|
2019-09-09 00:02:25 -04:00
|
|
|
RUN mkdir -p /config
|
2019-03-27 00:14:07 -04:00
|
|
|
|
2019-03-28 12:36:24 -04:00
|
|
|
COPY --from=go-build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
2019-09-09 00:02:25 -04:00
|
|
|
COPY --from=go-build /app/config/* /config/
|
|
|
|
COPY --from=go-build /app/super-graph .
|
2020-04-16 00:26:32 -04:00
|
|
|
COPY --from=go-build /app/internal/scripts/start.sh .
|
2020-03-03 13:45:47 +05:30
|
|
|
COPY --from=go-build /usr/local/bin/sops .
|
2019-03-27 00:14:07 -04:00
|
|
|
|
2019-09-09 00:02:25 -04:00
|
|
|
RUN chmod +x /super-graph
|
2020-03-03 13:45:47 +05:30
|
|
|
RUN chmod +x /start.sh
|
|
|
|
|
2019-03-27 00:14:07 -04:00
|
|
|
USER nobody
|
|
|
|
|
2020-03-06 09:47:51 +05:30
|
|
|
ENV GO_ENV production
|
|
|
|
|
2020-03-03 13:45:47 +05:30
|
|
|
ENTRYPOINT ["./start.sh"]
|
2020-03-05 09:13:52 +05:30
|
|
|
CMD ["./super-graph", "serv"]
|