- 在 .drone.yml 中新增 alpine-base 镜像构建的 SSH Pipeline - 添加基于阿里云镜像源和自定义证书的 Alpine 基础镜像 Dockerfile - 创建构建基础镜像的脚本 build-base-image.sh,支持构建并推送镜像 - 新增 alpine-base 目录下的 README.md,详细说明镜像特点和使用方法 - 设置非 root 用户 appuser 及应用目录,提升安全性 - 支持根据 alpine-base 目录变更触发自动构建流程
51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Build script for alpine-base Docker image
|
|
# This script creates an optimized Alpine base image
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
BASE_IMAGE_NAME="alpine-base"
|
|
REGISTRY="${DOCKER_REGISTRY:-git.oceanpay.cc/danial}"
|
|
VERSION="${VERSION:-latest}"
|
|
|
|
echo "🏗️ Building alpine-base Docker image..."
|
|
echo "Registry: $REGISTRY"
|
|
echo "Version: $VERSION"
|
|
echo
|
|
|
|
# Build the base image (Alpine Linux with optimizations)
|
|
echo "📦 Building base image ($BASE_IMAGE_NAME)..."
|
|
docker build \
|
|
--file Dockerfile.base \
|
|
--tag "$BASE_IMAGE_NAME:$VERSION" \
|
|
--tag "$BASE_IMAGE_NAME:latest" \
|
|
.
|
|
|
|
# Tag for registry if specified
|
|
if [ "$REGISTRY" != "localhost:5000" ]; then
|
|
docker tag "$BASE_IMAGE_NAME:$VERSION" "$REGISTRY/$BASE_IMAGE_NAME:$VERSION"
|
|
docker tag "$BASE_IMAGE_NAME:latest" "$REGISTRY/$BASE_IMAGE_NAME:latest"
|
|
fi
|
|
|
|
echo "✅ Base image built successfully!"
|
|
|
|
# Push to registry if specified
|
|
if [ "$REGISTRY" != "localhost:5000" ]; then
|
|
echo "🚀 Pushing image to registry..."
|
|
docker push "$REGISTRY/$BASE_IMAGE_NAME:$VERSION"
|
|
docker push "$REGISTRY/$BASE_IMAGE_NAME:latest"
|
|
echo "✅ Image pushed to registry successfully!"
|
|
fi
|
|
|
|
echo
|
|
echo "🎉 Build completed successfully!"
|
|
echo "Available images:"
|
|
echo " - $BASE_IMAGE_NAME:$VERSION"
|
|
echo " - $BASE_IMAGE_NAME:latest"
|
|
|
|
# Display image size
|
|
echo
|
|
echo "📊 Image size:"
|
|
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" | grep "$BASE_IMAGE_NAME" |