deploy: consomme l'image Docker publiée par la CI au lieu d'un build local

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.
This commit is contained in:
2026-07-24 18:12:43 +02:00
parent f228783193
commit 8972bcaa06
3 changed files with 30 additions and 15 deletions

View File

@@ -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 .

View File

@@ -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)

View File

@@ -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: