For users wanting more control over the raw geocoding results and address formatting, the geocoding “engine” behind the batch processing in ghcr.io/degauss-org/geocoder can be programmatically called one address at a time:

Start the geocoding container in the background and override its entrypoint:

docker run -it -d --name gs --entrypoint=/bin/bash ghcr.io/degauss-org/geocoder:3.4.0

Then geocode a specific address string and get the results in JSON:

docker exec gs ruby /app/geocode.rb "3333 Burnet Ave Cincinnati OH 45229"

After the geocoding process is complete, stop and remove the container:

docker stop gs
docker rm gs

This process can be scripted; for example, in the R package OfflineGeocodeR.

Note: For DeGAUSS geocoder versions <=3.1.0, replace the path to the ruby file (/app/geocode.rb) in the docker exec command with /root/geocoder/geocode.rb.