|
|
@ -1,41 +1,29 @@ |
|
|
|
## 1. Server |
|
|
|
## 1. Build Server |
|
|
|
# Use Go 1.10 |
|
|
|
FROM golang:1.10 AS build-server |
|
|
|
FROM golang:1.11 AS build-server |
|
|
|
|
|
|
|
# Load repository into docker |
|
|
|
WORKDIR /go/src/git.aiterp.net/rpdata/api/ |
|
|
|
COPY . . |
|
|
|
RUN rm -rf ./vendor |
|
|
|
|
|
|
|
# Load build tools and dependencies |
|
|
|
RUN go get -u github.com/golang/dep/cmd/dep |
|
|
|
RUN go get -u github.com/vektah/gorunpkg |
|
|
|
RUN go get -u github.com/jteeuwen/go-bindata/... |
|
|
|
RUN dep ensure |
|
|
|
RUN go generate ./... |
|
|
|
|
|
|
|
# Build server and tools (CGO disabled to make them 100% static) |
|
|
|
ENV CGO_ENABLED 0 |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-graphiql ./cmd/rpdata-graphiql |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-server ./cmd/rpdata-server |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-lb2charimport ./cmd/rpdata-lb2charimport |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-lb2logimport ./cmd/rpdata-lb2logimport |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-wikifileimport ./cmd/rpdata-wikifileimport |
|
|
|
# TODO: RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-wikifileimport ./cmd/rpdata-wikifileimport |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-ensurechannels ./cmd/rpdata-ensurechannels |
|
|
|
RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-as2storyimport ./cmd/rpdata-as2storyimport |
|
|
|
|
|
|
|
## 2. React UI |
|
|
|
# Use Node.JS 18 |
|
|
|
FROM node:10.5-alpine AS build-id |
|
|
|
|
|
|
|
# The content is already there |
|
|
|
WORKDIR /rpdata-ui |
|
|
|
COPY ./rpdata-ui /rpdata-ui |
|
|
|
|
|
|
|
# Prepare dependencies |
|
|
|
RUN npm install |
|
|
|
|
|
|
|
# Run build |
|
|
|
RUN npm run build |
|
|
|
|
|
|
|
## 3. Regroup |
|
|
|
## 2. Distribute |
|
|
|
# Use alpine linux |
|
|
|
FROM alpine:3.7 |
|
|
|
|
|
|
@ -44,7 +32,6 @@ RUN apk add --no-cache ca-certificates |
|
|
|
|
|
|
|
# Copy build files into final container |
|
|
|
COPY --from=build-server /binaries/* /usr/local/bin/ |
|
|
|
COPY --from=build-id /rpdata-ui/build /var/www/ |
|
|
|
|
|
|
|
# TODO: Use proper server instead of grapihql server |
|
|
|
CMD ["/usr/local/bin/rpdata-graphiql"] |
|
|
|
# The server is the main entry point |
|
|
|
CMD ["/usr/local/bin/rpdata-server"] |