26 lines
659 B
Docker
26 lines
659 B
Docker
############################
|
|
# STEP 1: Build executable
|
|
############################
|
|
FROM golang:1.24.1-alpine AS builder
|
|
RUN apk add --no-cache git build-base sqlite-dev
|
|
WORKDIR /app
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN go install github.com/a-h/templ/cmd/templ@latest
|
|
RUN templ generate
|
|
RUN CGO_ENABLED=1 go build -o ddns-manager .
|
|
|
|
############################
|
|
# STEP 2: Build final image
|
|
############################
|
|
FROM alpine:latest
|
|
|
|
RUN apk add --no-cache sqlite-libs ca-certificates tzdata
|
|
WORKDIR /app
|
|
COPY --from=builder /app/ddns-manager /app/
|
|
VOLUME /data
|
|
EXPOSE 3000
|
|
ENV DB_PATH=/data/ddns.db
|
|
|
|
ENTRYPOINT ["/app/ddns-manager"]
|