55 lines
1.8 KiB
Markdown
55 lines
1.8 KiB
Markdown
# Docker AfterWork
|
||
|
||
Fichiers Docker pour le build et l’exécution de l’API AfterWork.
|
||
|
||
## Fichiers
|
||
|
||
| Fichier | Usage |
|
||
|---------|--------|
|
||
| `Dockerfile` | Image dev (JAR pré-buildé, Alpine) |
|
||
| `Dockerfile.prod` | Image prod (multi-stage Maven + UBI8) |
|
||
| `docker-compose.yml` | Stack optionnelle (app + PostgreSQL/Kafka sur l’hôte) |
|
||
|
||
## Build (depuis la racine du projet)
|
||
|
||
```bash
|
||
# Image de production
|
||
docker build -f docker/Dockerfile.prod -t afterwork-quarkus:latest .
|
||
|
||
# Image de dev (après mvn package)
|
||
docker build -f docker/Dockerfile -t afterwork-quarkus:dev .
|
||
```
|
||
|
||
## Docker Compose
|
||
|
||
Utilise le PostgreSQL et Kafka déjà en cours d’exécution sur l’hôte (host.docker.internal).
|
||
|
||
**Depuis la racine :**
|
||
```bash
|
||
docker-compose -f docker/docker-compose.yml up -d
|
||
```
|
||
|
||
**Depuis docker/ :**
|
||
```bash
|
||
cd docker && docker-compose up -d
|
||
```
|
||
|
||
### PostgreSQL (obligatoire)
|
||
|
||
L’application se connecte à PostgreSQL sur l’hôte (`host.docker.internal:5432`). Sans identifiants, l’erreur **« no password was provided »** apparaît.
|
||
|
||
- **Par défaut** (si vous ne définissez rien) : `DB_USERNAME=afterwork`, `DB_PASSWORD=changeme`, `DB_NAME=afterwork_db`.
|
||
- Créer la base et l’utilisateur dans PostgreSQL, par exemple :
|
||
```sql
|
||
CREATE USER afterwork WITH PASSWORD 'changeme';
|
||
CREATE DATABASE afterwork_db OWNER afterwork;
|
||
```
|
||
- Ou utiliser **vos** identifiants via un fichier **`.env` à la racine du projet** (mic-after-work-server-impl-quarkus-main) — Docker Compose le charge quand vous lancez depuis cette racine :
|
||
```bash
|
||
# Contenu de .env à la racine du projet
|
||
DB_USERNAME=monuser
|
||
DB_PASSWORD=monmotdepasse
|
||
DB_NAME=afterwork_db
|
||
```
|
||
Si vous lancez depuis `docker/` (`cd docker && docker-compose up`), placez le `.env` dans le dossier `docker/`.
|