Implement multi-stage Docker build with security hardening, add health check endpoint, optimize in-memory search with O(1) wikilink lookup, extract inline tags from markdown content, and enhance documentation with architecture diagrams and performance metrics
This commit is contained in:
@@ -1,25 +1,49 @@
|
||||
#!/bin/bash
|
||||
# Build multi-platform ObsiGate Docker image
|
||||
set -e
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== ObsiGate Multi-Platform Build ==="
|
||||
# ----- Configuration -----
|
||||
VERSION="1.1.0"
|
||||
IMAGE_NAME="obsigate"
|
||||
PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7,linux/386"
|
||||
BUILDER_NAME="obsigate-builder"
|
||||
|
||||
docker buildx create --use --name obsigate-builder 2>/dev/null || true
|
||||
# ----- Helpers -----
|
||||
info() { printf '\033[1;34m[INFO]\033[0m %s\n' "$*"; }
|
||||
ok() { printf '\033[1;32m[OK]\033[0m %s\n' "$*"; }
|
||||
error() { printf '\033[1;31m[ERR]\033[0m %s\n' "$*" >&2; }
|
||||
|
||||
# Build for all target platforms
|
||||
# ----- Pre-flight checks -----
|
||||
if ! command -v docker &>/dev/null; then
|
||||
error "docker introuvable. Installez Docker avant de continuer."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! docker buildx version &>/dev/null; then
|
||||
error "docker buildx introuvable. Mettez à jour Docker ou installez le plugin buildx."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
info "=== ObsiGate v${VERSION} — Multi-Platform Build ==="
|
||||
info "Platforms : ${PLATFORMS}"
|
||||
|
||||
# ----- Builder setup -----
|
||||
docker buildx create --use --name "${BUILDER_NAME}" 2>/dev/null || true
|
||||
|
||||
# ----- Build -----
|
||||
# Note: --load only works for single platform; use --push for multi-platform registry push.
|
||||
# For local testing, build one platform at a time:
|
||||
# docker buildx build --platform linux/amd64 --load -t obsigate:latest .
|
||||
# For local testing, build one platform at a time (see below).
|
||||
|
||||
docker buildx build \
|
||||
--platform linux/amd64,linux/arm64,linux/arm/v7,linux/386 \
|
||||
--tag obsigate:latest \
|
||||
--tag obsigate:1.0.0 \
|
||||
--platform "${PLATFORMS}" \
|
||||
--tag "${IMAGE_NAME}:latest" \
|
||||
--tag "${IMAGE_NAME}:${VERSION}" \
|
||||
"$@" \
|
||||
.
|
||||
|
||||
ok "Build terminé (v${VERSION})."
|
||||
echo ""
|
||||
echo "Build terminé."
|
||||
echo "Pour un push vers un registry : ajoutez --push au build."
|
||||
echo "Pour un test local (amd64) :"
|
||||
echo " docker buildx build --platform linux/amd64 --load -t obsigate:latest ."
|
||||
info "Pour un push vers un registry : $0 --push"
|
||||
info "Pour un test local (amd64) :"
|
||||
echo " docker buildx build --platform linux/amd64 --load -t ${IMAGE_NAME}:latest ."
|
||||
echo " docker-compose up -d"
|
||||
|
||||
Reference in New Issue
Block a user