PostgreSQL sur 5433 : DSM occupe deja le port standard

Le demarrage a echoue sur "listen tcp4 0.0.0.0:5432: bind: address already in
use". Synology fait tourner son propre PostgreSQL sur le port standard pour ses
services internes ; on ne le deloge pas, on se met a cote. Notre base est donc
publiee sur 5433, et ce port ne sert qu a l analyse depuis un poste de travail.

Corrige au passage une erreur de conception que ce plantage a revelee : j avais
repris network_mode bridge du chien de garde, ou il se justifiait parce qu il
n a qu un conteneur et doit joindre le GX. Ici il prive les trois services du
reseau interne de compose, donc de la resolution par nom — ce qui m avait
conduit a coder l adresse 10.10.10.22 en dur dans le service d historisation
pour qu il rejoigne une base situee dans le meme compose. Supprime : les
conteneurs se parlent desormais par nom de service, sans dependre du port
publie ni d une IP.

InfluxDB a demarre du premier coup, 8086 etant libre.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
Tallagrand Thierry
2026-09-04 01:35:52 +02:00
parent 7e2ed6d076
commit ab66a9ed54
2 changed files with 27 additions and 6 deletions

View File

@@ -51,6 +51,25 @@ Vérifications :
```sh ```sh
docker compose exec postgres psql -U evcs -d evcs -c '\dt' docker compose exec postgres psql -U evcs -d evcs -c '\dt'
curl -s http://10.10.10.22:8086/health curl -s http://10.10.10.22:8086/health
docker compose logs historisation --tail 5
```
### Ports : 5433, et pas 5432
DSM fait tourner **son propre PostgreSQL sur 5432**, pour ses services internes.
Notre base est donc publiée sur **5433**. Ce port ne sert qu'à l'analyse depuis
un poste de travail :
```sh
psql -h 10.10.10.22 -p 5433 -U evcs -d evcs
```
Les trois conteneurs, eux, se parlent par le réseau interne du compose et par
nom de service (`postgres:5432`) — ni adresse IP en dur, ni dépendance au port
publié. Vérifier ce qui occupe un port avant de conclure :
```sh
sudo ss -lntp | grep -E '5432|5433|8086'
``` ```
Le schéma (`schema.sql`) est appliqué **une seule fois**, à la création de la Le schéma (`schema.sql`) est appliqué **une seule fois**, à la création de la

View File

@@ -37,10 +37,12 @@ services:
image: postgres:16-alpine image: postgres:16-alpine
container_name: evcs-postgres container_name: evcs-postgres
restart: always restart: always
network_mode: bridge
ports: ports:
# Ouvert au réseau local : n8n tourne sur 10.10.10.17 et doit écrire ici. # 5433 et non 5432 : DSM fait deja tourner son propre PostgreSQL sur le
- "5432:5432" # port standard, pour ses services internes. On ne le deloge pas — on se
# met a cote. Ce port n'est publie que pour l'analyse depuis un poste de
# travail ; l'historisation, elle, passe par le reseau interne.
- "5433:5432"
env_file: env_file:
- .env - .env
environment: environment:
@@ -64,7 +66,6 @@ services:
image: influxdb:2.7-alpine image: influxdb:2.7-alpine
container_name: evcs-influxdb container_name: evcs-influxdb
restart: always restart: always
network_mode: bridge
ports: ports:
# Home Assistant, sur 10.10.10.17, écrit ici. # Home Assistant, sur 10.10.10.17, écrit ici.
- "8086:8086" - "8086:8086"
@@ -97,7 +98,6 @@ services:
container_name: evcs-historisation container_name: evcs-historisation
restart: always restart: always
working_dir: /app working_dir: /app
network_mode: bridge
depends_on: depends_on:
postgres: postgres:
condition: service_healthy condition: service_healthy
@@ -109,7 +109,9 @@ services:
environment: environment:
- TZ=Europe/Paris - TZ=Europe/Paris
- HA_URL=http://10.10.10.17:8123 - HA_URL=http://10.10.10.17:8123
- PGHOST=10.10.10.22 # Nom de service sur le reseau interne du compose : ni IP en dur, ni
# dependance au port publie sur l'hote.
- PGHOST=postgres
- PGPORT=5432 - PGPORT=5432
- PGUSER=evcs - PGUSER=evcs
- PGDATABASE=evcs - PGDATABASE=evcs