diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..86fff86 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +data +*.osm.pbf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4ab7d2e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.11-bullseye + +RUN apt-get update && \ + apt-get install -y \ + gdal-bin \ + parallel \ + postgresql-client \ + python3-virtualenv + +WORKDIR /opt/imposm +RUN wget https://github.com/omniscale/imposm3/releases/download/v0.11.1/imposm-0.11.1-linux-x86-64.tar.gz && \ + tar -xvzf imposm-0.11.1-linux-x86-64.tar.gz && \ + ln -s /opt/imposm/imposm-0.11.1-linux-x86-64/imposm /usr/bin/imposm + +WORKDIR /opt/bano + +ADD requirements.txt . +RUN pip install -r requirements.txt diff --git a/README.md b/README.md index db6fa21..d6b9745 100644 --- a/README.md +++ b/README.md @@ -58,3 +58,43 @@ load_osm_france_db.sh http://download.openstreetmap.fr/extracts/europe/france/fr Pour connaître les commandes du module bano : `bano --help`. Quasiment toutes les options sont utilisées dans le script `cron_bano`. + +## Docker + +### Configuration +Il ne faut pas modifier le fichier de configuration pour l'exécution avec docker. Pour changer le chemin ou sont stocké les données ajuster le volume data dans `docker-compose`. + +``` +# Créer l'espace de travail +docker-compose run --rm tools ./arborescence.sh +``` + +### Initialisation +``` +# Démarre Postgres et attend un peu avant de l'utiliser +docker-compose up -d postgres && sleep 5 +# Créer les bases de données +docker-compose run --rm tools ./init_base.sh +``` + +Si besoin de se connecter sur la base de données : +``` +docker-compose exec -u postgres postgres psql +``` + +``` +# Charger les données OSM +docker-compose run --rm tools ./load_osm_france_db.sh http://download.openstreetmap.fr/extracts/europe/france/franche_comte/territoire_de_belfort.osm.pbf + +# Charger les autres données +docker-compose run --rm tools ./load_fantoir.sh +docker-compose run --rm tools ./load_COG.sh +docker-compose run --rm tools ./load_codes_postaux.sh +docker-compose run --rm tools ./update_cadastre_adresses.sh +docker-compose run --rm tools ./update_table_infos_communes.sh +docker-compose run --rm tools bash -c "source config && python -m bano update_code_cadastre" + +### Mise à jour +``` +docker-compose run --rm tools ./cron_bano.sh +``` diff --git a/bano/bin.py b/bano/bin.py index be84754..5c03318 100644 --- a/bano/bin.py +++ b/bano/bin.py @@ -205,3 +205,6 @@ def main(): import ipdb ipdb.set_trace() + +if __name__ == "__main__": + main() diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a025cc9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3.3' + +services: + postgres: + image: postgis/postgis:13-3.3-alpine + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_HOST_AUTH_METHOD=trust + ports: + - 5432:5432 + + tools: + build: . + volumes: + - .:/opt/bano + - ./data:/data + environment: + # Postgres + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_HOST=postgres + - POSTGRES_PORT=5432 + # BANO + - SRC_DIR=/opt/bano + - DATA_DIR=/data/bano + - DOWNLOAD_DIR=/data/download + - IMPOSM_CACHE_DIR=/data/bano_imposm_cache + - EXPORT_SAS_DIR=/data/export_sas + - EXPORT_WEB_DIR=/data/export + - TMP_DIR=/data/tmp + - LANG=C