54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
if [ $# -eq 0 ]; then
|
||
echo "Usage: $0 <image-name>"
|
||
echo "Example: $0 base-debian"
|
||
exit 1
|
||
fi
|
||
|
||
IMAGE_NAME=${1:-base-debian}
|
||
echo "Building Docker image: $IMAGE_NAME"
|
||
|
||
REPO="registry.tomastm.com"
|
||
TAG_LATEST="latest"
|
||
|
||
BUILD_DIR="./${IMAGE_NAME}"
|
||
|
||
if [ ! -d "${BUILD_DIR}" ]; then
|
||
echo "❌ Error: Directory '${BUILD_DIR}' does not exist."
|
||
exit 1
|
||
fi
|
||
|
||
UID=$(id -u)
|
||
GID=$(id -g)
|
||
|
||
COMMIT_ID=$(git rev-parse --short HEAD)
|
||
|
||
IMAGE_LATEST="${REPO}/${IMAGE_NAME}:${TAG_LATEST}"
|
||
IMAGE_COMMIT="${REPO}/${IMAGE_NAME}:${COMMIT_ID}"
|
||
|
||
docker build \
|
||
-t ${IMAGE_COMMIT} \
|
||
--build-arg UID=${UID} \
|
||
--build-arg GID=${GID} \
|
||
${BUILD_DIR}
|
||
|
||
docker tag ${IMAGE_COMMIT} ${IMAGE_LATEST}
|
||
|
||
echo "✅ Successfully built and tagged:"
|
||
echo " 📌 ${IMAGE_COMMIT}"
|
||
echo " 🔄 ${IMAGE_LATEST}"
|
||
|
||
read -p "🚀 Do you want to push the image to ${REPO}? (y/N): " PUSH_CONFIRM
|
||
if [[ "$PUSH_CONFIRM" =~ ^[Yy]$ ]]; then
|
||
echo "📤 Pushing images..."
|
||
docker push ${IMAGE_COMMIT}
|
||
docker push ${IMAGE_LATEST}
|
||
echo "✅ Successfully pushed images to ${REPO}"
|
||
else
|
||
echo "ℹ️ Skipping push. You can manually push later with:"
|
||
echo " docker push ${IMAGE_COMMIT}"
|
||
echo " docker push ${IMAGE_LATEST}"
|
||
fi
|
||
|