You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							50 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							50 lines
						
					
					
						
							1.6 KiB
						
					
					
				| ## 1. Server | |
| # Use Go 1.10 | |
| FROM golang:1.10 AS build-server | |
|  | |
| # Load repository into docker | |
| WORKDIR /go/src/git.aiterp.net/rpdata/api/ | |
| COPY . . | |
|  | |
| # Load build tools and dependencies | |
| RUN go get -u github.com/golang/dep/cmd/dep | |
| 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-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 | |
| 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 | |
| # Use alpine linux | |
| FROM alpine:3.7 | |
|  | |
| # Install certificates to enable HTTPS GET requests | |
| 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"]
 |