Ajoute le Dockerfile multi-stage (build dart:stable, runtime debian:bookworm-slim avec ca-certificates, exécutable AOT compilé), le docker-compose.yaml (API + Postgres avec healthcheck et depends_on: service_healthy), .env.example, .dockerignore et les scripts scripts/docker-entrypoint.sh (migration au démarrage) et scripts/push-gitea-image.sh (aucun identifiant en dur, mot de passe via --password-stdin). dart analyze clean, dart test 24/24 vert, `docker compose config` valide (syntaxe, interpolation de variables, healthcheck). Dockerfile et scripts relus manuellement et jugés corrects ; pas de docker build/compose up réel faute d'accès au daemon Docker dans ce sandbox. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
30 lines
775 B
Bash
Executable File
30 lines
775 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
require_env() {
|
|
local name="$1"
|
|
if [[ -z "${!name:-}" ]]; then
|
|
echo "Missing required environment variable: ${name}" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
require_env GITEA_REGISTRY
|
|
require_env GITEA_OWNER
|
|
require_env GITEA_IMAGE_NAME
|
|
require_env GITEA_USERNAME
|
|
require_env GITEA_TOKEN
|
|
|
|
GITEA_IMAGE_TAG="${GITEA_IMAGE_TAG:-latest}"
|
|
IMAGE_REF="${GITEA_REGISTRY}/${GITEA_OWNER}/${GITEA_IMAGE_NAME}:${GITEA_IMAGE_TAG}"
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
SERVER_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
|
|
docker build -t "${IMAGE_REF}" "${SERVER_DIR}"
|
|
printf '%s' "${GITEA_TOKEN}" | docker login "${GITEA_REGISTRY}" \
|
|
--username "${GITEA_USERNAME}" \
|
|
--password-stdin
|
|
docker push "${IMAGE_REF}"
|
|
|
|
echo "Pushed ${IMAGE_REF}"
|