备份
This commit is contained in:
58
build_and_push.sh
Executable file
58
build_and_push.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Docker 镜像构建和推送脚本
|
||||
# 使用方法: ./build_and_push.sh [镜像标签] [推送标志]
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
# 配置变量
|
||||
IMAGE_NAME="shokku"
|
||||
REGISTRY="ccr.ccs.tencentyun.com" # 替换为您的仓库地址
|
||||
NAMESPACE="miaogai" # 替换为您的命名空间
|
||||
DOCKERFILE="Dockerfile"
|
||||
BUILD_CONTEXT="."
|
||||
|
||||
# 参数处理
|
||||
TAG=${1:-"latest"}
|
||||
PUSH=${2:-"false"}
|
||||
|
||||
# 完整的镜像地址
|
||||
FULL_IMAGE_NAME="${REGISTRY}/${NAMESPACE}/${IMAGE_NAME}:${TAG}"
|
||||
|
||||
echo "=== Docker 镜像构建和推送 ==="
|
||||
echo "镜像名称: ${FULL_IMAGE_NAME}"
|
||||
echo "Dockerfile: ${DOCKERFILE}"
|
||||
echo "构建上下文: ${BUILD_CONTEXT}"
|
||||
|
||||
# 检查 Docker 是否安装
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "错误: 未找到 Docker,请先安装 Docker"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 构建镜像
|
||||
echo "开始构建镜像..."
|
||||
docker build -t ${IMAGE_NAME}:${TAG} -f ${DOCKERFILE} ${BUILD_CONTEXT}
|
||||
|
||||
# 标记镜像
|
||||
echo "标记镜像..."
|
||||
docker tag ${IMAGE_NAME}:${TAG} ${FULL_IMAGE_NAME}
|
||||
|
||||
# 如果需要推送
|
||||
if [ "$PUSH" = "true" ]; then
|
||||
echo "登录到镜像仓库..."
|
||||
# 如果使用 Docker Hub
|
||||
# docker login
|
||||
|
||||
# 如果使用私有仓库
|
||||
# docker login ${REGISTRY}
|
||||
|
||||
echo "推送镜像到仓库..."
|
||||
docker push ${FULL_IMAGE_NAME}
|
||||
|
||||
echo "✅ 镜像推送完成: ${FULL_IMAGE_NAME}"
|
||||
else
|
||||
echo "ℹ️ 镜像构建完成,未推送 (使用 'true' 作为第二个参数来推送)"
|
||||
fi
|
||||
|
||||
echo "=== 完成 ==="
|
||||
Reference in New Issue
Block a user