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:
11
Makefile
11
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
|
# Backend avec auto-reload uvicorn
|
||||||
dev_back:
|
dev_back:
|
||||||
@@ -12,6 +12,11 @@ dev_front:
|
|||||||
dev:
|
dev:
|
||||||
$(MAKE) dev_back & $(MAKE) dev_front & wait
|
$(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:
|
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 .
|
||||||
|
|||||||
20
README.md
20
README.md
@@ -37,19 +37,27 @@ Ouvrir **http://localhost:5173** — le proxy Vite redirige `/api` vers le backe
|
|||||||
|
|
||||||
## Production (Docker)
|
## Production (Docker)
|
||||||
|
|
||||||
Un **conteneur unique** : l'image builde le frontend Vue puis le fait servir
|
Un **conteneur unique** : l'image embarque le frontend Vue builde, servi par
|
||||||
par le backend FastAPI (API + interface web sur le meme port). Pas de nginx.
|
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
|
```bash
|
||||||
make docker # podman-compose up --build
|
make docker # podman-compose pull && podman-compose up -d
|
||||||
# ou : docker compose up --build
|
# ou : docker compose pull && docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Accessible sur **http://localhost:8080**.
|
Accessible sur **http://localhost:8080**.
|
||||||
|
|
||||||
Les donnees (base SQLite + documents) sont declarees via `PLESNA_DATA_DIR`
|
Les donnees (base SQLite + documents) sont declarees via `PLESNA_DATA_DIR`
|
||||||
(voir `docker-compose.yml`) et persistees dans le volume `./data`, donc
|
(voir `docker-compose.yml`) et persistees dans un volume nomme dedie
|
||||||
conservees entre les redemarrages du conteneur.
|
(`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)
|
## Application de bureau (Windows, sans ligne de commande)
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
build:
|
# Image publiée par la CI Gitea (pas de build local).
|
||||||
context: .
|
image: git.opytex.org/lafrite/plesna-gerance:latest
|
||||||
dockerfile: backend.Dockerfile
|
|
||||||
ports:
|
ports:
|
||||||
# hôte:conteneur — l'app (API + interface web) écoute sur 8000
|
# hôte:conteneur — l'app (API + interface web) écoute sur 8000
|
||||||
- "8080:8000"
|
- "8080:8000"
|
||||||
volumes:
|
volumes:
|
||||||
# Persiste base SQLite + documents hors du conteneur.
|
# Volume nommé dédié aux données (base SQLite + documents).
|
||||||
- ./data:/app/data
|
- plesna-data:/app/data
|
||||||
environment:
|
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).
|
# database.sqlite et documents/ (cf. src/plesna_gerance/paths.py).
|
||||||
- PLESNA_DATA_DIR=/app/data
|
- PLESNA_DATA_DIR=/app/data
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
plesna-data:
|
||||||
|
|||||||
Reference in New Issue
Block a user