allineamento

This commit is contained in:
alessandro barucci
2026-07-17 10:00:09 +02:00
parent 20d506407a
commit 6ffb202579
24 changed files with 714 additions and 30 deletions

View File

@@ -7,9 +7,26 @@ REPO_NAME=$1
COMMIT_SHA=$(git rev-parse HEAD)
REGISTRY_URL=$2
# Esegui build_src.sh se presente prima della build container
if [ -f "./build_src.sh" ]; then
echo "build_src.sh trovato, lo rendo eseguibile e lo eseguo"
chmod +x ./build_src.sh
./build_src.sh
fi
# Controlla se la directory containers esiste
if [ ! -d "containers" ]; then
echo "⚠️ Directory 'containers' non trovata, niente da fare"
exit 0
fi
for dir in containers/*/; do
CONTAINER_NAME=$(basename "$dir")
cp -R src/${CONTAINER_NAME}/. containers/${CONTAINER_NAME}/.
if [ -d "src/${CONTAINER_NAME}" ]; then
cp -R "src/${CONTAINER_NAME}/." "containers/${CONTAINER_NAME}/."
else
echo "Directory src/${CONTAINER_NAME} non trovata, skip copia sorgenti"
fi
ls -la $dir
# Cerca sia dockerfile che Dockerfile
@@ -41,17 +58,23 @@ for dir in containers/*/; do
if [ -f "$DOCKERFILE" ]; then
if [ -n "$BUILD_PLATFORM" ]; then
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx create --driver docker-container --use
docker buildx inspect --bootstrap
docker buildx build --platform "$BUILD_PLATFORM" -t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" -f "$DOCKERFILE" "$dir" --push
else
docker build -t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" -f "$DOCKERFILE" "$dir"
docker push "$IMAGE_TAG"
docker push "$IMAGE_TAG_LATEST"
docker buildx build \
--cache-from=type=registry,ref="${REGISTRY_URL}/${REPO_NAME}/${CONTAINER_NAME}:cache" \
--cache-to=type=registry,ref="${REGISTRY_URL}/${REPO_NAME}/${CONTAINER_NAME}:cache",mode=max \
-t "$IMAGE_TAG" -t "$IMAGE_TAG_LATEST" \
-f "$DOCKERFILE" "$dir" --push
fi
echo "Build e push completate: $IMAGE_TAG"
# Cleanup immagini locali dopo il push (buildx --push potrebbe non averle in locale)
docker image rm -f "$IMAGE_TAG" "$IMAGE_TAG_LATEST" >/dev/null 2>&1 || true
echo "Cleanup immagini locali completato: $IMAGE_TAG, $IMAGE_TAG_LATEST"
# Cleanup globale ad ogni ciclo: immagini inutilizzate e cache builder
docker image prune -af
docker builder prune -af
else
echo "Dockerfile non trovato in $dir"
fi