From 8972bcaa065dd3cfdc64c5f42f3dcce2dbe9a946 Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Fri, 24 Jul 2026 18:12:43 +0200 Subject: [PATCH] =?UTF-8?q?deploy:=20consomme=20l'image=20Docker=20publi?= =?UTF-8?q?=C3=A9e=20par=20la=20CI=20au=20lieu=20d'un=20build=20local?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le docker-compose.yml tire désormais git.opytex.org/lafrite/plesna-gerance:latest et persiste les données dans un volume nommé (plesna-data) plutôt qu'un bind-mount. make docker fait pull+up ; make docker-build reste disponible pour tester l'image en local. --- Makefile | 11 ++++++++--- README.md | 20 ++++++++++++++------ docker-compose.yml | 14 ++++++++------ 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index e9162c6..5296146 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: dev_back dev_front dev docker +.PHONY: dev_back dev_front dev docker docker-build # Backend avec auto-reload uvicorn dev_back: @@ -12,6 +12,11 @@ dev_front: dev: $(MAKE) dev_back & $(MAKE) dev_front & wait -# Build et lance via podman-compose +# Tire l'image publiee (registre Gitea) et lance via podman-compose docker: - podman-compose up --build + podman-compose pull + podman-compose up -d + +# Construit l'image en local (test avant publication) +docker-build: + podman build -f backend.Dockerfile -t plesna-gerance:local . diff --git a/README.md b/README.md index de7f9b5..a9f580a 100644 --- a/README.md +++ b/README.md @@ -37,19 +37,27 @@ Ouvrir **http://localhost:5173** — le proxy Vite redirige `/api` vers le backe ## Production (Docker) -Un **conteneur unique** : l'image builde le frontend Vue puis le fait servir -par le backend FastAPI (API + interface web sur le meme port). Pas de nginx. +Un **conteneur unique** : l'image embarque le frontend Vue builde, servi par +le backend FastAPI (API + interface web sur le meme port). Pas de nginx. + +L'image est **publiee par la CI Gitea** (`.gitea/workflows/docker-publish.yml`) +sur `git.opytex.org/lafrite/plesna-gerance`. Le `docker-compose.yml` la **tire** +directement (pas de build local) : ```bash -make docker # podman-compose up --build -# ou : docker compose up --build +make docker # podman-compose pull && podman-compose up -d +# ou : docker compose pull && docker compose up -d ``` Accessible sur **http://localhost:8080**. Les donnees (base SQLite + documents) sont declarees via `PLESNA_DATA_DIR` -(voir `docker-compose.yml`) et persistees dans le volume `./data`, donc -conservees entre les redemarrages du conteneur. +(voir `docker-compose.yml`) et persistees dans un volume nomme dedie +(`plesna-data`), donc conservees entre les redemarrages et recreations du +conteneur. + +> Build local de l'image (test avant publication) : `make docker-build` +> (`podman build -f backend.Dockerfile -t plesna-gerance:local .`). ## Application de bureau (Windows, sans ligne de commande) diff --git a/docker-compose.yml b/docker-compose.yml index 2f332f2..a659742 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,18 @@ services: app: - build: - context: . - dockerfile: backend.Dockerfile + # Image publiée par la CI Gitea (pas de build local). + image: git.opytex.org/lafrite/plesna-gerance:latest ports: # hôte:conteneur — l'app (API + interface web) écoute sur 8000 - "8080:8000" volumes: - # Persiste base SQLite + documents hors du conteneur. - - ./data:/app/data + # Volume nommé dédié aux données (base SQLite + documents). + - plesna-data:/app/data environment: - # Déclare l'emplacement des données ; get_data_dir() en dérive + # Le conteneur écrit ses données ici ; get_data_dir() en dérive # database.sqlite et documents/ (cf. src/plesna_gerance/paths.py). - PLESNA_DATA_DIR=/app/data restart: unless-stopped + +volumes: + plesna-data: