-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
39 lines (29 loc) · 1.05 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
## binarybuild
##
FROM golang:1.13.0-alpine3.10 as binarybuilder
ENV GO111MODULE on
ENV PROJECT_NAME vmbackup-sidecar
RUN apk --no-cache add git
WORKDIR /go/src/${PROJECT_NAME}
COPY . .
RUN go mod download
RUN VERSION=$(git describe --always --long) && \
DT=$(date -u +"%Y-%m-%dT%H:%M:%SZ") && \
SEMVER=$(git tag --list --sort="v:refname" | tail -n -1) && \
BRANCH=$(git rev-parse --abbrev-ref HEAD) && \
cd cmd && \
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s -X main.version=${VERSION} -X main.builddt=${DT} -X main.semver=${SEMVER} -X main.branch=${BRANCH}" -o /build/${PROJECT_NAME}
## awscli + app
##
# awscli has bug syncing empty files under Python3, thus using Python2
# https://github.com/aws/aws-cli/issues/2403
FROM python:2.7-alpine3.10
RUN pip install --no-cache-dir awscli==1.16.238
# Required for full-featured `find` util
RUN apk add findutils
# vmbackup app
ENV BINARY vmbackup-sidecar
EXPOSE 8488
WORKDIR /app
COPY --from=binarybuilder /build/${BINARY} bin/${BINARY}
ENTRYPOINT ["/app/bin/vmbackup-sidecar"]