2024-02-18 10:42:21 +00:00
|
|
|
# Build Stage
|
|
|
|
# First pull Golang image
|
2024-08-29 03:26:59 +00:00
|
|
|
FROM golang:1.23.0-alpine as builder
|
2024-02-18 10:42:21 +00:00
|
|
|
|
|
|
|
# Set environment variable
|
|
|
|
ENV APP_NAME niki
|
|
|
|
ENV CMD_PATH main.go
|
|
|
|
|
|
|
|
# Add a work directory
|
|
|
|
WORKDIR /$APP_NAME
|
|
|
|
|
|
|
|
## Cache and install dependencies
|
|
|
|
#COPY go.mod go.sum ./
|
|
|
|
#RUN go mod download
|
|
|
|
|
|
|
|
# Copy app files
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
# Budild application
|
2024-08-29 03:26:59 +00:00
|
|
|
RUN CGO_ENABLED=0 go build -mod=vendor -v -o $APP_NAME .
|
2024-02-18 10:42:21 +00:00
|
|
|
|
|
|
|
# Run Stage
|
|
|
|
|
2024-08-29 03:26:59 +00:00
|
|
|
FROM alpine:3.20 as Runtime
|
2024-02-18 10:42:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
# Set environment variable
|
|
|
|
ENV APP_NAME niki
|
|
|
|
|
|
|
|
# Copy only required data into this image
|
|
|
|
COPY --from=builder /$APP_NAME .
|
|
|
|
|
|
|
|
# Expose application port
|
2024-08-29 03:26:59 +00:00
|
|
|
EXPOSE 8313
|
2024-02-18 10:42:21 +00:00
|
|
|
|
|
|
|
# Start app
|
2024-08-29 03:26:59 +00:00
|
|
|
CMD ./$APP_NAME
|