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