Compare commits

1 Commits

Author SHA1 Message Date
718dce60ef feat: API Dockerfile
All checks were successful
ordr deploy / build (push) Successful in -47s
2025-11-22 19:48:33 +00:00
3 changed files with 16 additions and 12 deletions

View File

@@ -3,7 +3,7 @@ run-name: ${{ gitea.actor }} is deploying ordr
on:
push:
branches:
- staging
- main
jobs:
build:

View File

@@ -1,31 +1,34 @@
# Stage 1: Build the application
FROM golang:1.25.3-alpine AS builder
FROM golang:1.25.3-alpine AS base
FROM base AS builder
COPY . /app
WORKDIR /app
# Copy go.mod and go.sum first to leverage Docker's caching
COPY go.mod go.sum ./
ENV GOPROXY=direct
RUN apk add git
RUN go mod download
# Copy the rest of the application source code
COPY . .
# Build the Go application
# CGO_ENABLED=0 disables Cgo for a fully static binary
# -a links all packages statically
# -installsuffix cgo_non_shared avoids issues with shared libraries
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo_non_shared -o main .
RUN CGO_ENABLED=0 GOOS=linux go build
RUN ls -al
# Stage 2: Create the final lean image
FROM alpine:latest
FROM base
WORKDIR /root/
# Copy the built binary from the builder stage
COPY --from=builder /app/main .
COPY --from=builder /app/ordr-api .
COPY --from=builder /app/.env .
# Expose the port your Gin application listens on (e.g., 8080)
EXPOSE 8080
# Command to run the application
CMD ["./ordr-api"]
ENV GIN_MODE=release
CMD ["./ordr-api"]

View File

@@ -59,7 +59,8 @@ func main() {
authenticator, auth_err := auth.New()
if auth_err != nil {
log.Fatal("ERROR: Failed to initialize Authenticator")
log.Printf("ERROR: Failed to initialize Authenticator %s", auth_err.Error())
log.Fatal("ERROR: Failed to initialize authenticator...")
return
}