2026-04-05 11:24:51 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
2026-04-21 09:23:54 +00:00
|
|
|
source ./0.variables.env
|
2026-04-05 11:24:51 +00:00
|
|
|
|
|
|
|
|
# ── Extraction des métadonnées depuis le Dockerfile ──────────────────────────
|
|
|
|
|
DOCKERFILE=./config-odoo/"${1:-Dockerfile}"
|
|
|
|
|
|
2026-05-28 16:05:22 +00:00
|
|
|
# ── Extraction des metadonnees depuis le Dockerfile ──────────────────────────
|
|
|
|
|
# Fonction robuste. gere les directives ENV et ARG, les formes "X=Y" et "X Y",
|
|
|
|
|
# et les valeurs entourees de guillemets. Retourne le premier token de la valeur.
|
|
|
|
|
extract_dockerfile_var() {
|
|
|
|
|
local key="$1"
|
|
|
|
|
local file="$2"
|
|
|
|
|
|
|
|
|
|
[[ -f "$file" ]] || { echo "[extract] Fichier introuvable. $file" >&2; return 2; }
|
|
|
|
|
|
|
|
|
|
awk -v k="$key" '
|
|
|
|
|
$0 ~ "^[[:space:]]*(ENV|ARG)[[:space:]]+" k "[[:space:]=]" {
|
|
|
|
|
sub("^[[:space:]]*(ENV|ARG)[[:space:]]+" k "[[:space:]=]+", "")
|
|
|
|
|
gsub(/"/, "")
|
|
|
|
|
print $1
|
|
|
|
|
exit
|
|
|
|
|
}
|
|
|
|
|
' "$file"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DOCKERFILE="./config-odoo/${1:-Dockerfile}"
|
|
|
|
|
|
|
|
|
|
[[ -f "$DOCKERFILE" ]] || {
|
|
|
|
|
echo "ERREUR. Dockerfile introuvable. $DOCKERFILE" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ODOO_VERSION=$(extract_dockerfile_var "ODOO_VERSION" "$DOCKERFILE")
|
|
|
|
|
ODOO_RELEASE=$(extract_dockerfile_var "ODOO_RELEASE" "$DOCKERFILE")
|
|
|
|
|
ODOO_SHA=$(extract_dockerfile_var "ODOO_SHA" "$DOCKERFILE")
|
|
|
|
|
|
|
|
|
|
: "${ODOO_VERSION:?ODOO_VERSION non extrait depuis $DOCKERFILE}"
|
|
|
|
|
: "${ODOO_RELEASE:?ODOO_RELEASE non extrait depuis $DOCKERFILE}"
|
|
|
|
|
: "${ODOO_SHA:?ODOO_SHA non extrait depuis $DOCKERFILE}"
|
|
|
|
|
|
|
|
|
|
echo "Metadonnees extraites depuis $DOCKERFILE."
|
|
|
|
|
echo " ODOO_VERSION = $ODOO_VERSION"
|
|
|
|
|
echo " ODOO_RELEASE = $ODOO_RELEASE"
|
|
|
|
|
echo " ODOO_SHA = $ODOO_SHA"
|
|
|
|
|
|
2026-04-05 11:24:51 +00:00
|
|
|
|
|
|
|
|
if [[ -z "$ODOO_VERSION" || -z "$ODOO_RELEASE" ]]; then
|
|
|
|
|
echo "ERREUR : impossible d'extraire ODOO_VERSION ou ODOO_RELEASE depuis $DOCKERFILE" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
IMAGE_NAME="odoo-${ODOO_VERSION}.${ODOO_RELEASE}-image"
|
|
|
|
|
|
|
|
|
|
echo "────────────────────────────────────────────"
|
|
|
|
|
echo " Dockerfile : $DOCKERFILE"
|
|
|
|
|
echo " Odoo version : $ODOO_VERSION"
|
|
|
|
|
echo " Build release: $ODOO_RELEASE"
|
|
|
|
|
echo " Image cible : $IMAGE_NAME"
|
|
|
|
|
echo "────────────────────────────────────────────"
|
|
|
|
|
|
|
|
|
|
# ── Build ─────────────────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
#echo "──commande cp───────────────────────────────"
|
2026-05-28 06:43:42 +00:00
|
|
|
#cp ./odoo.conf ./config-odoo/
|
2026-04-05 11:24:51 +00:00
|
|
|
cp ./requirements.txt ./config-odoo/
|
|
|
|
|
|
|
|
|
|
#echo "──commande cd ──────────────────────────────"
|
|
|
|
|
cd config-odoo
|
|
|
|
|
|
|
|
|
|
#echo "───commande build ──────────────────────────"
|
|
|
|
|
docker build \
|
|
|
|
|
--build-arg ODOO_RELEASE="$ODOO_RELEASE" \
|
|
|
|
|
--tag "$IMAGE_NAME" \
|
|
|
|
|
.
|
|
|
|
|
|
|
|
|
|
#echo "─commande cd ..─────────────────────────────"
|
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
|
|
|
2026-04-21 10:21:47 +00:00
|
|
|
#echo "──────alimentation de .env pour le docker-compose.yml──────────────"
|
2026-04-21 13:03:25 +00:00
|
|
|
echo "" > ./.env
|
|
|
|
|
echo "ODOO_IMAGE=${IMAGE_NAME}" >> ./.env
|
|
|
|
|
echo "" >> ./0.variables.env
|
2026-05-27 18:12:42 +00:00
|
|
|
echo "export ODOO_IMAGE=${IMAGE_NAME}" >> ./0.variables.env
|
2026-04-05 11:24:51 +00:00
|
|
|
|
2026-04-21 10:21:47 +00:00
|
|
|
#echo "──────fin───────────────────────────────────"
|
2026-04-05 11:24:51 +00:00
|
|
|
echo ""
|
2026-04-21 10:21:47 +00:00
|
|
|
|
2026-04-05 11:24:51 +00:00
|
|
|
echo "✓ Image construite : $IMAGE_NAME"
|
2026-04-21 10:15:47 +00:00
|
|
|
|