Skip to content

Commit

Permalink
refactor(scripts): déplacement des scripts exploitables dans le conte…
Browse files Browse the repository at this point in the history
…neur dans un dossier bin/
  • Loading branch information
mborne committed Jun 10, 2024
1 parent f0b2f5b commit dc9d310
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 30 deletions.
5 changes: 5 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
OSM_PLANET_URL=https://download.geofabrik.de/europe/monaco-latest.osm.pbf
USE_FLAT_NODES=0
CACHE_SIZE=2000

POSTGRES_PASSWORD=ChangeIt
7 changes: 3 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,10 @@ RUN groupadd -g "${GID}" osm \
RUN mkdir -p /opt/osm-integration
WORKDIR /opt/osm-integration

COPY *.sh .
RUN chmod +x *.sh

RUN bash get-styles.sh
COPY bin/ bin
RUN chmod +x bin/*.sh

RUN bash bin/get-styles.sh

RUN mkdir -p /opt/osm-integration/data \
&& chown -R osm:osm /opt/osm-integration/data
Expand Down
48 changes: 29 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,32 @@
## Prérequis

* Instance PostgreSQL avec tuning adéquat
* osm2pgsql unzip gdal-bin python3-psycopg2
* python3-psycopg2
* osm2pgsql
* unzip
* gdal-bin

## Principaux scripts

* [install.sh](install.sh) : utilisation des utilitaires (osm2pgsql, unzip, gdal-bin,...)
* [import.sh](import.sh) : import initial des données
* [update.sh](update.sh) : mise à jour des données
* [bin/import.sh](bin/import.sh) : import initial des données
* [bin/update.sh](bin/update.sh) : mise à jour des données

## Paramétrage

La connexion à la base de données s'appuie sur les variables d'environnements standards de PostgreSQL (PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE,...).

| Variable | Description | Valeur par défaut |
| ------------------ | ---------------------------------------------- | ---------------------------------------------------------- |
| **OSM_PLANET_URL** | URL du fichier PBF pour [import.sh](import.sh) | https://download.geofabrik.de/europe/monaco-latest.osm.pbf |
| OSM_DATA_DIR | Dossier de téléchargement des données | `${SCRIPT_DIR}/data` |
| Variable | Description | Valeur par défaut |
| ------------------ | --------------------------------------------------------- | ---------------------------------------------------------- |
| **OSM_PLANET_URL** | URL du fichier PBF pour [import.sh](import.sh) | https://download.geofabrik.de/europe/monaco-latest.osm.pbf |
| OSM_DATA_DIR | Dossier de téléchargement des données | `./data` |
| CACHE_SIZE | Permet d'adapter la taille du cache pour les noeuds | `2000` (1) |
| USE_FLAT_NODES | Permet d'activer `--flat-nodes=${OSM_DATA_DIR}/nodes.raw` | `0` (2) |

Remarques :

* (1) Voir [osm2pgsql.org - Caching](https://osm2pgsql.org/doc/manual.html#caching), compter `20000` pour import monde (soit 20Gi)
* (2) Il faut alors conserver le fichier `${OSM_DATA_DIR}/nodes.raw` qui remplace la table `planet_osm_nodes`


## Utilisation
Expand Down Expand Up @@ -65,27 +75,27 @@ docker compose build
# Démarrer la stack avec osm-integration en mode terminal
docker compose up -d

# Configurer l'import
export OSM_PLANET_URL=https://download.geofabrik.de/europe/monaco-latest.osm.pbf
export CACHE_SIZE=2000
docker compose run terminal bin/update.sh

# Mettre à jour les données
docker compose run terminal bin/update.sh
```

Pour le debug :

```bash
# Se connecter à osm-integration en mode terminal
docker compose exec terminal /bin/bash
#... on est alors dans le conteneur :

# Vérifier l'accès à la BDD
psql -l

# Importer les données
export CACHE_SIZE=2000
export OSM_PLANET_URL=https://download.geofabrik.de/europe/monaco-latest.osm.pbf

bash import.sh
```


## TODO

* Ajouter une option `USE_FLAT_NODES` à false par défaut
* Créer un utilisateur "osmrw" et un utilisateur "osmro"
* Vérifier la possibilité de faire le lien avec un serveur de tuile (invalidation des tuiles)

## Licence

[MIT](LICENSE)
Expand Down
3 changes: 2 additions & 1 deletion get-styles.sh → bin/get-styles.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
OSMCARTO_VERSION="5.8.0"

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
STYLES_DIR=${SCRIPT_DIR}/styles
ROOT_DIR=$(dirname "$SCRIPT_DIR")
STYLES_DIR=${ROOT_DIR}/styles

rm -rf "${STYLES_DIR}"
mkdir -p "${STYLES_DIR}"
Expand Down
5 changes: 3 additions & 2 deletions import.sh → bin/import.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
#--------------------------------------------------------------

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
ROOT_DIR=$(dirname "$SCRIPT_DIR")

OSM_STYLES_DIR=${SCRIPT_DIR}/styles
OSM_STYLES_DIR=${ROOT_DIR}/styles
OSM_CARTO_DIR=${OSM_STYLES_DIR}/openstreetmap-carto

#--------------------------------------------------------------
# Handle import / update options
#--------------------------------------------------------------
OSM_DATA_DIR=${OSM_DATA_DIR:-${SCRIPT_DIR}/data}
OSM_DATA_DIR=${OSM_DATA_DIR:-${ROOT_DIR}/data}
# optionnal
OSM_FLAT_NODES_PATH=${OSM_DATA_DIR}/nodes.raw

Expand Down
5 changes: 3 additions & 2 deletions update.sh → bin/update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
#--------------------------------------------------------------

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
ROOT_DIR=$(dirname "$SCRIPT_DIR")

OSM_STYLES_DIR=${SCRIPT_DIR}/styles
OSM_STYLES_DIR=${ROOT_DIR}/styles
OSM_CARTO_DIR=${OSM_STYLES_DIR}/openstreetmap-carto

#--------------------------------------------------------------
# Handle import / update options
#--------------------------------------------------------------
OSM_DATA_DIR=${OSM_DATA_DIR:-${SCRIPT_DIR}/data}
OSM_DATA_DIR=${OSM_DATA_DIR:-${ROOT_DIR}/data}
# optionnal
OSM_FLAT_NODES_PATH=${OSM_DATA_DIR}/nodes.raw

Expand Down
7 changes: 5 additions & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@ services:
- http_proxy
- https_proxy
environment:
- OSM_PLANET_URL=$OSM_PLANET_URL
- USE_FLAT_NODES=$USE_FLAT_NODES
- CACHE_SIZE=$CACHE_SIZE
- http_proxy
- https_proxy
- HTTP_PROXY
- HTTPS_PROXY
- PGHOST=db
- PGPORT=5432
- PGUSER=postgres
- PGPASSWORD=ChangeIt
- PGPASSWORD=$POSTGRES_PASSWORD
- PGDATABASE=osm
volumes:
- integration-data:/opt/osm-integration/data
Expand All @@ -25,7 +28,7 @@ services:
image: postgis/postgis:15-3.4-alpine
container_name: osm_db
environment:
- POSTGRES_PASSWORD=ChangeIt
- POSTGRES_PASSWORD=$POSTGRES_PASSWORD
volumes:
- db-data:/var/lib/postgresql/data

Expand Down

0 comments on commit dc9d310

Please sign in to comment.