diff --git a/Dockerfile b/Dockerfile index bfac340..21a6334 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM golang:1.8 WORKDIR /go/src/app -COPY GeoIP2-Country.mmdb /go/src/app +COPY GeoLite2-City.mmdb /go/src/app COPY ip2country.go /go/src/app RUN go get -d -v github.com/oschwald/geoip2-golang diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml new file mode 100644 index 0000000..1193c41 --- /dev/null +++ b/docker-compose-prod.yml @@ -0,0 +1,13 @@ +version: "3.4" + +services: + ip2country: + image: "nexus-ng.themarker.com/ip2country:${version:-latest}" + hostname: ip2counrty + networks: + - production + ports: + - "4005:8080" +networks: + production: + external: true diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c744289 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: "3.4" +services: + ip2country: + build: . + deploy: + mode: replicated + replicas: 1 + image: "nexus-ng.themarker.com/ip2country:${version:-latest}" + ports: + - "4005:4005" diff --git a/ip2country.go b/ip2country.go index c8ecfc1..97e3292 100644 --- a/ip2country.go +++ b/ip2country.go @@ -12,7 +12,7 @@ import ( geoip2 "github.com/oschwald/geoip2-golang" ) -var dbFile = "GeoIP2-Country.mmdb" +var dbFile = "GeoLite2-City.mmdb" func handler(w http.ResponseWriter, r *http.Request) { db, err := geoip2.Open(dbFile) @@ -39,6 +39,7 @@ func handler(w http.ResponseWriter, r *http.Request) { resp := make(map[string]string, 2) resp["country"] = record.Country.Names["en"] resp["code"] = record.Country.IsoCode + resp["city"] = record.City.Names["en"] w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(resp) } @@ -57,3 +58,4 @@ func errorHandler(w http.ResponseWriter, r *http.Request, status int, msg string fmt.Fprint(w, msg) } } +