datosgobar / georef-ar-api

API del Servicio de Normalización de Datos Geográficos de Argentina.
https://apis.datos.gob.ar/georef
MIT License
150 stars 31 forks source link

Dockerizar georef-ar-api #176

Open federicotdn opened 5 years ago

federicotdn commented 5 years ago

Dockerizar la API de Georef para facilitar su instalación en distintos ambientes. Decidir si es conveniente incluir la instalación de Elasticsearch como parte del contenedor o conjunto de contenedores.

hmassad commented 4 years ago

te puedo dar una mano con esto confirmame si sería un Dockerfile que levante una imagen de python3 e instale el servicio incluiría elasticsearch y kibana en un docker-compose.yml

abertuccio commented 2 years ago

Quería comentar que respecto a dockerizar solo la app para desarrollo, utilizando un Elastic externo bastaría con crear/modificar config/georef.cfg y hacer un Dockerfile basicamente con esto:

FROM python:3.6-buster

WORKDIR /app

COPY . /app

RUN pip install --upgrade pip
RUN pip --no-cache-dir install -r requirements.txt

EXPOSE 5000

CMD ["make","start_dev_server"]

Para no alterar "requirements.txt", hay que usar python 3.6. El start_dev_server en el CMD obviamente es para desarrollo.

El build sería algo como: docker build -t georef-ar-api . El run sería algo como:docker run -t --name geo-ar-api -d --network host -p 5000:5000 -v $(pwd):/app georef-ar-api

El "--network" sería solo en el caso de querer usar el localhost del host. El bindeo del codigo completo (-v $(pwd):/app) obviamente es para desarrollo. Cuidado que el pwd es la ruta desde la que se está lanzando el comando, en este caso es el root del proyecto.

Para insertar los indices, podemos entrar con docker exec -it geo-ar-api bash y ejecutar make index o el comando que se quiera.

Una vez que se complete la inserción, va a funcionar la app en localhost:5000

Esta es una idea para el que lo quiera hacer, no pretente ser perfecta pero así me funciono todo.