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.
		
		
		
		
		
			
		
			
				
					
					
						
							38 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							38 lines
						
					
					
						
							1.5 KiB
						
					
					
				
								## 1. Build Server
							 | 
						|
								# Use Go 1.10
							 | 
						|
								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-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
							 | 
						|
								# 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
							 | 
						|
								RUN go build -a -installsuffix cgo -ldflags="-s -w" -o /binaries/rpdata-logpaste ./cmd/rpdata-logpaste
							 | 
						|
								
							 | 
						|
								## 2. Distribute
							 | 
						|
								# Use alpine linux
							 | 
						|
								FROM alpine:3.7
							 | 
						|
								
							 | 
						|
								# Install certificates to enable HTTPS GET requests, and tzdata for logpaste
							 | 
						|
								RUN apk add --no-cache ca-certificates tzdata
							 | 
						|
								
							 | 
						|
								# Copy build files into final container
							 | 
						|
								COPY --from=build-server /binaries/* /usr/local/bin/
							 | 
						|
								
							 | 
						|
								# The server is the main entry point
							 | 
						|
								CMD ["/usr/local/bin/rpdata-server"]
							 |