-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
32 lines (28 loc) · 1.09 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
FROM golang:alpine AS builder
WORKDIR $GOPATH/src/bradford-hamilton/go-jwt-template
# Pull environment variables from the --build-args
ARG GO_JWT_TEMPLATE_SERVER_PORT
ARG GO_JWT_TEMPLATE_DB_HOST
ARG GO_JWT_TEMPLATE_DB_PORT
ARG GO_JWT_TEMPLATE_DB_USER
ARG GO_JWT_TEMPLATE_DB_PASSWORD
ARG GO_JWT_TEMPLATE_DB_NAME
ARG GO_JWT_TEMPLATE_SSL_MODE
ARG GO_JWT_TEMPLATE_ENVIRONMENT
# Set env vars
ENV GO_JWT_TEMPLATE_SERVER_PORT=$GO_JWT_TEMPLATE_SERVER_PORT
ENV GO_JWT_TEMPLATE_DB_HOST=$GO_JWT_TEMPLATE_DB_HOST
ENV GO_JWT_TEMPLATE_DB_PORT=$GO_JWT_TEMPLATE_DB_PORT
ENV GO_JWT_TEMPLATE_DB_USER=$GO_JWT_TEMPLATE_DB_USER
ENV GO_JWT_TEMPLATE_DB_PASSWORD=$GO_JWT_TEMPLATE_DB_PASSWORD
ENV GO_JWT_TEMPLATE_DB_NAME=$GO_JWT_TEMPLATE_DB_NAME
ENV GO_JWT_TEMPLATE_SSL_MODE=$GO_JWT_TEMPLATE_SSL_MODE
ENV GO_JWT_TEMPLATE_ENVIRONMENT=$GO_JWT_TEMPLATE_ENVIRONMENT
# Copy src code into image, fetch dependencies
COPY . .
RUN go mod download
WORKDIR $GOPATH/src/bradford-hamilton/go-jwt-template/cmd/server
# Build for linux 64 bit
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o /go/bin/server .
EXPOSE 4000
ENTRYPOINT ["/go/bin/server"]