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"]
							 |