# syntax=docker/dockerfile:1 FROM golang:1.22-alpine AS build WORKDIR /app COPY go.mod ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -o /url-shortener ./main.go FROM alpine:3.20 RUN adduser -D -H appuser \ && mkdir -p /data \ && chown -R appuser:appuser /data USER appuser COPY --from=build /url-shortener /usr/local/bin/url-shortener EXPOSE 8080 ENV ADDR=:8080 ENV DB_PATH=/data/shortener.db ENV BASE_URL=http://localhost:8080 ENV AUTH_MODE=local VOLUME ["/data"] CMD ["url-shortener"]