allineamento
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user