From 2d045ce4f8488eda1f451da62a40ecb3ac2bb534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Rodrigo?= Date: Wed, 22 Feb 2023 22:16:10 +0100 Subject: [PATCH] Add Docker support --- .dockerignore | 2 ++ Dockerfile | 18 ++++++++++++++++++ README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml 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..3f8de5e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3.12-bookworm + +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 4bf7e1f..7fd1092 100644 --- a/README.md +++ b/README.md @@ -97,3 +97,46 @@ python -m 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 +mkdir -p data +chmod a+s data +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 +docker-compose exec -u postgres postgres psql -c "DROP schema tiger CASCADE" +docker-compose run --rm tools bash -c "source config && ./init_base.sh" +docker-compose run --rm tools bash -c "source config && python -m bano setup_db" +``` + +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 bash -c "source config && python -m bano charge_topo" +docker-compose run --rm tools bash -c "source config && python -m bano charge_ban" +docker-compose run --rm tools bash -c "source config && python -m bano update_bis_table" +docker-compose run --rm tools bash -c "source config && python -m bano charge_cog" +docker-compose run --rm tools bash -c "source config && python -m bano charge_ld_cadastre" +docker-compose run --rm tools bash -c "source config && python -m bano charge_cp" +### Mise à jour +``` +docker-compose run --rm tools bash -c "source config && ./cron_bano.sh" +``` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..79aa7de --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3.3' + +services: + postgres: + image: postgis/postgis:16-3.4-alpine + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_HOST_AUTH_METHOD=trust + ports: + - "127.0.0.1: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