From cc8449c7b3a0e6c55801b62950c59040ed43b97a Mon Sep 17 00:00:00 2001 From: thuanle Date: Sun, 14 Jul 2024 00:14:25 +0700 Subject: [PATCH] dockerize --- Dockerfile | 29 +++++++++++++++++++++++++++++ configs/config.go | 11 ++++++++--- data/geoip-v4.mmdb | Bin 8184600 -> 8184600 bytes docker-compose.yml | 10 ++++++++++ internal/services/api/main.go | 4 ++++ 5 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4314d8b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# Cache dependency +FROM golang:1.22-alpine AS go-mod-cache + +WORKDIR /app + +COPY go.mod go.sum ./ + +RUN go mod download + +# BUILD +FROM go-mod-cache AS build + +WORKDIR /app + +COPY internal . + +RUN go build . -o ip-info + +# RUN IMAGE +FROM alpine + +RUN apk update && apk upgrade && \ + apk add --no-cache tzdata + +WORKDIR /app +COPY --from=build /app/ip-info . +COPY mmdbmeld.yml . + +CMD ["./ip-info"] \ No newline at end of file diff --git a/configs/config.go b/configs/config.go index c682f86..546d59a 100644 --- a/configs/config.go +++ b/configs/config.go @@ -5,7 +5,12 @@ var GeoDbSourcePaths = []string{ "https://cdn.jsdelivr.net/npm/@ip-location-db/geolite2-asn/geolite2-asn-ipv4.csv", } -const GeoDbFolder = "data/" +const ( + GeoDbFolder = "data/" + MmdbmeldConfig = "mmdbmeld.yml" + MmdbDbFile = GeoDbFolder + "geoip-v4.mmdb" +) -const MmdbmeldConfig = "mmdbmeld.yml" -const MmdbDbFile = GeoDbFolder + "geoip-v4.mmdb" +const ( + ApiDefaultPort = "8080" +) diff --git a/data/geoip-v4.mmdb b/data/geoip-v4.mmdb index f096e5e71f62bf56f1014e3e7892b98eafcb3516..238bdf547303c3884c9332b23cf0e5621efd47e8 100644 GIT binary patch delta 266 zcmWN=G9G{xbVf^spz60-pSMVTS!3%KDx%bbn!T0ZP z1^FOYh)`j|MTit7T8vn6;w4CwB-uwPQhkypU4~3qvgOE?Ctra=MT(UuRpzsDUsR}6 z<*RBnYSsCsUV}zWntj*ehgNOcb?DTkTaR9S`VAN~WY~yNW5!LGG-cY1S#y5+<+phY z7A;w};*V8p0@iKVv}N00J9h2aci_;GV<%3XIrq1gkC`q!9Ql$DMO}Y%3vSiDVD^I=xg^Cm_QL4;m<-Vv; zsmfQ?YSgOpO}z$