+6
-2
@@ -1,4 +1,8 @@
|
|||||||
# Mot de passe PostgreSQL partagé entre le container db et l'API Spring Boot.
|
# Copier ce fichier en .env et adapter les valeurs avant de démarrer.
|
||||||
# Copier ce fichier en .env et définir une valeur sécurisée avant de démarrer.
|
|
||||||
# cp .env.example .env
|
# cp .env.example .env
|
||||||
|
|
||||||
|
# Mot de passe PostgreSQL partagé entre le container db et l'API Spring Boot.
|
||||||
POSTGRES_PASSWORD=changeme
|
POSTGRES_PASSWORD=changeme
|
||||||
|
|
||||||
|
# Chemin absolu vers la clé SSH privée ayant accès au dépôt Gitea.
|
||||||
|
SSH_KEY_PATH=/home/gato/.ssh/id_ed25519
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
|
|
||||||
FROM eclipse-temurin:25-jdk AS builder
|
FROM eclipse-temurin:25-jdk AS builder
|
||||||
RUN apt-get update && apt-get install -y git openssh-client && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y git openssh-client && rm -rf /var/lib/apt/lists/*
|
||||||
RUN mkdir -p /root/.ssh && \
|
RUN --mount=type=secret,id=ssh_key \
|
||||||
ssh-keyscan -p 2222 git.goutailler-olivier.com >> /root/.ssh/known_hosts
|
|
||||||
RUN --mount=type=ssh \
|
|
||||||
--mount=type=cache,target=/root/.gradle \
|
--mount=type=cache,target=/root/.gradle \
|
||||||
|
mkdir -p /root/.ssh && \
|
||||||
|
cp /run/secrets/ssh_key /root/.ssh/id_ed25519 && \
|
||||||
|
chmod 600 /root/.ssh/id_ed25519 && \
|
||||||
|
ssh-keyscan -p 2222 git.goutailler-olivier.com >> /root/.ssh/known_hosts && \
|
||||||
git clone --depth 1 --branch main \
|
git clone --depth 1 --branch main \
|
||||||
ssh://git@git.goutailler-olivier.com:2222/Gato/Bonsai-api.git /src && \
|
ssh://git@git.goutailler-olivier.com:2222/Gato/Bonsai-api.git /src && \
|
||||||
cd /src && ./gradlew bootJar --no-daemon -q
|
cd /src && ./gradlew bootJar --no-daemon -q
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
|
|
||||||
FROM node:22-alpine AS builder
|
FROM node:22-alpine AS builder
|
||||||
RUN apk add --no-cache git openssh
|
RUN apk add --no-cache git openssh
|
||||||
RUN mkdir -p /root/.ssh && \
|
RUN --mount=type=secret,id=ssh_key \
|
||||||
ssh-keyscan -p 2222 git.goutailler-olivier.com >> /root/.ssh/known_hosts
|
|
||||||
RUN --mount=type=ssh \
|
|
||||||
--mount=type=cache,target=/root/.npm \
|
--mount=type=cache,target=/root/.npm \
|
||||||
|
mkdir -p /root/.ssh && \
|
||||||
|
cp /run/secrets/ssh_key /root/.ssh/id_ed25519 && \
|
||||||
|
chmod 600 /root/.ssh/id_ed25519 && \
|
||||||
|
ssh-keyscan -p 2222 git.goutailler-olivier.com >> /root/.ssh/known_hosts && \
|
||||||
git clone --depth 1 --branch main \
|
git clone --depth 1 --branch main \
|
||||||
ssh://git@git.goutailler-olivier.com:2222/Gato/Bonsai-webapp.git /src && \
|
ssh://git@git.goutailler-olivier.com:2222/Gato/Bonsai-webapp.git /src && \
|
||||||
cd /src && npm ci --cache /root/.npm && npm run build
|
cd /src && npm ci --cache /root/.npm && npm run build
|
||||||
|
|||||||
+7
-10
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Stack Docker Compose unifiée pour l'application Bonsai : base de données, API et webapp.
|
Stack Docker Compose unifiée pour l'application Bonsai : base de données, API et webapp.
|
||||||
|
|
||||||
Les images sont **buildées depuis les sources** de la branche `main` de chaque dépôt au moment du build.
|
Les images sont **buildées depuis les sources** de la branche `main` de chaque dépôt au moment du build. La clé SSH est transmise au build via un secret BuildKit — elle n'est jamais gravée dans les couches de l'image.
|
||||||
|
|
||||||
## Services
|
## Services
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ Les images sont **buildées depuis les sources** de la branche `main` de chaque
|
|||||||
## Prérequis
|
## Prérequis
|
||||||
|
|
||||||
- Docker avec BuildKit activé (Docker 23+)
|
- Docker avec BuildKit activé (Docker 23+)
|
||||||
- Accès SSH au dépôt Gitea (`git.goutailler-olivier.com:2222`) avec la clé chargée dans l'agent
|
- Une clé SSH ayant accès au dépôt Gitea (`git.goutailler-olivier.com:2222`)
|
||||||
- Réseau Docker externe `proxy` (Traefik)
|
- Réseau Docker externe `proxy` (Traefik)
|
||||||
|
|
||||||
## Démarrage
|
## Démarrage
|
||||||
@@ -23,15 +23,12 @@ Les images sont **buildées depuis les sources** de la branche `main` de chaque
|
|||||||
```bash
|
```bash
|
||||||
# 1. Configurer les variables d'environnement
|
# 1. Configurer les variables d'environnement
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
# Éditer .env et définir POSTGRES_PASSWORD
|
# Éditer .env : définir POSTGRES_PASSWORD et SSH_KEY_PATH
|
||||||
|
|
||||||
# 2. S'assurer que la clé SSH est chargée
|
# 2. Builder les images (clone + compile)
|
||||||
ssh-add ~/.ssh/<ta_cle>
|
docker compose build
|
||||||
|
|
||||||
# 3. Builder les images (clone + compile)
|
# 3. Démarrer la stack
|
||||||
docker compose build --ssh default
|
|
||||||
|
|
||||||
# 4. Démarrer la stack
|
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -40,7 +37,7 @@ docker compose up -d
|
|||||||
Pour rebuilder depuis le dernier commit de `main` :
|
Pour rebuilder depuis le dernier commit de `main` :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker compose build --ssh default --no-cache
|
docker compose build --no-cache
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.api
|
dockerfile: Dockerfile.api
|
||||||
ssh:
|
secrets:
|
||||||
- default
|
- ssh_key
|
||||||
container_name: bonsai-api
|
container_name: bonsai-api
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -56,8 +56,8 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.webapp
|
dockerfile: Dockerfile.webapp
|
||||||
ssh:
|
secrets:
|
||||||
- default
|
- ssh_key
|
||||||
container_name: bonsai-webapp
|
container_name: bonsai-webapp
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -81,3 +81,7 @@ networks:
|
|||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
name: proxy
|
name: proxy
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
ssh_key:
|
||||||
|
file: ${SSH_KEY_PATH}
|
||||||
|
|||||||
Reference in New Issue
Block a user