Files
geoip-rest/Dockerfile
2025-12-10 10:52:48 +09:00

37 lines
1.2 KiB
Docker

FROM golang:1.25.5-trixie AS builder
ENV GOCACHE=/tmp/go-build \
GOPROXY=https://proxy.golang.org,direct
WORKDIR /src
COPY go.mod ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /bin/geoip ./cmd/server && \
CGO_ENABLED=0 go build -o /bin/geoip-loader ./cmd/loader && \
CGO_ENABLED=0 go build -o /bin/user-program-import ./cmd/user_program_import && \
CGO_ENABLED=0 go build -o /bin/user-program-dump ./cmd/user_program_dump && \
CGO_ENABLED=0 go build -o /bin/user-program-sync ./cmd/user_program_sync
FROM debian:trixie-slim
RUN useradd --create-home --shell /usr/sbin/nologin appuser
WORKDIR /
COPY --from=builder /bin/geoip /usr/local/bin/geoip
COPY --from=builder /bin/geoip-loader /usr/local/bin/geoip-loader
COPY --from=builder /bin/user-program-import /usr/local/bin/user-program-import
COPY --from=builder /bin/user-program-dump /usr/local/bin/user-program-dump
COPY --from=builder /bin/user-program-sync /usr/local/bin/user-program-sync
COPY initial_data /initial_data
RUN mkdir -p /update_data /log && \
chown -R appuser:appuser /initial_data /update_data /log
ENV GEOIP_DB_PATH=/initial_data/GeoLite2-City.mmdb
USER appuser
EXPOSE 8080
CMD ["geoip"]