improve deployment process
This commit is contained in:
@@ -21,20 +21,23 @@ if ! command -v docker >/dev/null 2>&1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! docker buildx version >/dev/null 2>&1; then
|
||||
echo "Docker Buildx is required but not available. Please install/enable it in Docker Desktop or via the CLI plugin." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read -rp "Image tag [${DEFAULT_TAG}]: " INPUT_TAG
|
||||
IMAGE_TAG="${INPUT_TAG:-$DEFAULT_TAG}"
|
||||
IMAGE_REF="${REGISTRY_HOST}/${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
|
||||
DEFAULT_PLATFORMS="linux/amd64"
|
||||
read -rp "Target platforms [${DEFAULT_PLATFORMS}]: " INPUT_PLATFORMS
|
||||
TARGET_PLATFORMS="${INPUT_PLATFORMS:-$DEFAULT_PLATFORMS}"
|
||||
|
||||
read -rp "Registry username: " REGISTRY_USER
|
||||
read -rsp "Registry password or token: " REGISTRY_PASSWORD
|
||||
echo
|
||||
|
||||
echo "Building image ${IMAGE_REF} ..."
|
||||
docker build \
|
||||
--file "${DOCKERFILE_PATH}" \
|
||||
--tag "${IMAGE_REF}" \
|
||||
"${DOCKER_CONTEXT}"
|
||||
|
||||
echo "Logging into ${REGISTRY_HOST} ..."
|
||||
echo "${REGISTRY_PASSWORD}" | docker login "${REGISTRY_HOST}" \
|
||||
--username "${REGISTRY_USER}" \
|
||||
@@ -45,7 +48,15 @@ cleanup() {
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "Pushing ${IMAGE_REF} ..."
|
||||
docker push "${IMAGE_REF}"
|
||||
echo "Bootstrapping buildx builder ..."
|
||||
docker buildx inspect --bootstrap >/dev/null
|
||||
|
||||
echo "Building and pushing ${IMAGE_REF} for ${TARGET_PLATFORMS} ..."
|
||||
docker buildx build \
|
||||
--platform "${TARGET_PLATFORMS}" \
|
||||
--file "${DOCKERFILE_PATH}" \
|
||||
--tag "${IMAGE_REF}" \
|
||||
--push \
|
||||
"${DOCKER_CONTEXT}"
|
||||
|
||||
echo "Image pushed successfully."
|
||||
|
||||
Reference in New Issue
Block a user