refactor: improve build script and Dockerfile
- Translate rebuild.sh messages to English - Add dockerfile syntax directive - Fix heredoc syntax in Dockerfile Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
|
# syntax=docker/dockerfile:1
|
||||||
# Gitea Action Runner Java Image
|
# Gitea Action Runner Java Image
|
||||||
# 基于 gitea_runner_base 添加多版本 JDK 和 Maven
|
# 基于 gitea_runner_base 添加多版本 JDK 和 Maven
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ ENV JAVA_HOME=${JAVA_BASE}/java-17-openjdk
|
|||||||
ENV PATH="${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${PATH}"
|
ENV PATH="${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${PATH}"
|
||||||
|
|
||||||
# 创建版本切换脚本
|
# 创建版本切换脚本
|
||||||
RUN cat > /usr/local/bin/use-java << 'EOF'
|
RUN cat <<'EOF' > /usr/local/bin/use-java
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
case "$1" in
|
case "$1" in
|
||||||
7) export JAVA_HOME=/usr/lib/jvm/java-7-zulu ;;
|
7) export JAVA_HOME=/usr/lib/jvm/java-7-zulu ;;
|
||||||
|
|||||||
38
rebuild.sh
38
rebuild.sh
@ -2,19 +2,19 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# 使用说明
|
# Usage
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: $0 <DIR> [VER] [save]"
|
echo "Usage: $0 <DIR> [VER] [save]"
|
||||||
echo ""
|
echo ""
|
||||||
echo " DIR - Dockerfile 所在目录路径 (必需)"
|
echo " DIR - Directory path containing Dockerfile (required)"
|
||||||
echo " VER - 镜像版本号 (可选, 默认: 1.0.0)"
|
echo " VER - Image version (optional, default: 1.0.0)"
|
||||||
echo " save - 是否保存为 tar 文件 (可选)"
|
echo " save - Save image as tar file (optional)"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# 检查 DIR 参数
|
# Check DIR parameter
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "Error: 缺少 DIR 参数"
|
echo "Error: Missing DIR parameter"
|
||||||
usage
|
usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -22,35 +22,35 @@ DIR="$1"
|
|||||||
VER="${2:-1.0.0}"
|
VER="${2:-1.0.0}"
|
||||||
SAVE="$3"
|
SAVE="$3"
|
||||||
|
|
||||||
# 检查目录是否存在
|
# Check if directory exists
|
||||||
if [ ! -d "$DIR" ]; then
|
if [ ! -d "$DIR" ]; then
|
||||||
echo "Error: 目录不存在: $DIR"
|
echo "Error: Directory not found: $DIR"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 从目录路径提取文件夹名作为镜像名
|
# Extract folder name from directory path as image name
|
||||||
DIR_NAME=$(basename "$DIR")
|
DIR_NAME=$(basename "$DIR")
|
||||||
NAME="timi/${DIR_NAME}"
|
NAME="timi/${DIR_NAME}"
|
||||||
|
|
||||||
echo "==> 构建镜像: ${NAME}:${VER}"
|
echo "==> Building image: ${NAME}:${VER}"
|
||||||
echo "==> Dockerfile 路径: ${DIR}"
|
echo "==> Dockerfile path: ${DIR}"
|
||||||
|
|
||||||
# 删除已存在的同名镜像 (忽略错误)
|
# Remove existing image with same name (ignore errors)
|
||||||
if docker image inspect "${NAME}:${VER}" > /dev/null 2>&1; then
|
if docker image inspect "${NAME}:${VER}" > /dev/null 2>&1; then
|
||||||
echo "==> 删除已存在的镜像: ${NAME}:${VER}"
|
echo "==> Removing existing image: ${NAME}:${VER}"
|
||||||
docker rmi "${NAME}:${VER}" || true
|
docker rmi "${NAME}:${VER}" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 构建镜像
|
# Build image
|
||||||
echo "==> 开始构建..."
|
echo "==> Starting build..."
|
||||||
docker build -t "${NAME}:${VER}" "$DIR"
|
docker build -t "${NAME}:${VER}" "$DIR"
|
||||||
|
|
||||||
echo "==> 构建完成: ${NAME}:${VER}"
|
echo "==> Build completed: ${NAME}:${VER}"
|
||||||
|
|
||||||
# 如果指定 save 参数,保存镜像为 tar
|
# If save parameter specified, save image as tar
|
||||||
if [ "$SAVE" = "save" ]; then
|
if [ "$SAVE" = "save" ]; then
|
||||||
TAR_FILE="${DIR_NAME}.tar"
|
TAR_FILE="${DIR_NAME}.tar"
|
||||||
echo "==> 保存镜像为: ${TAR_FILE}"
|
echo "==> Saving image as: ${TAR_FILE}"
|
||||||
docker save -o "$TAR_FILE" "${NAME}:${VER}"
|
docker save -o "$TAR_FILE" "${NAME}:${VER}"
|
||||||
echo "==> 保存完成: ${TAR_FILE}"
|
echo "==> Save completed: ${TAR_FILE}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user