HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/owl/.container/build_docker.bat
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo 在Windows上构建Docker镜像... 
echo Building Docker image on Windows...

REM 设置Docker BuildKit环境变量
REM Set Docker BuildKit environment variables
set DOCKER_BUILDKIT=1
set COMPOSE_DOCKER_CLI_BUILD=1

REM 设置配置变量
REM Set configuration variables
set CACHE_DIR=.docker-cache\pip
set BUILD_ARGS=--build-arg BUILDKIT_INLINE_CACHE=1
set COMPOSE_FILE=docker-compose.yml

REM 解析命令行参数
REM Parse command line arguments
set CLEAN_CACHE=0
set REBUILD=0
set SERVICE=

:parse_args
if "%~1"=="" goto :end_parse_args
if /i "%~1"=="--clean" (
    set CLEAN_CACHE=1
    shift
    goto :parse_args
)
if /i "%~1"=="--rebuild" (
    set REBUILD=1
    shift
    goto :parse_args
)
if /i "%~1"=="--service" (
    set SERVICE=%~2
    shift
    shift
    goto :parse_args
)
if /i "%~1"=="--help" (
    echo 用法: build_docker.bat [选项]
    echo Usage: build_docker.bat [options]
    echo 选项:
    echo Options:
    echo   --clean     清理缓存目录
    echo   --clean     Clean cache directory
    echo   --rebuild   强制重新构建镜像
    echo   --rebuild   Force rebuild image
    echo   --service   指定要构建的服务名称
    echo   --service   Specify service name to build
    echo   --help      显示此帮助信息
    echo   --help      Show this help message
    exit /b 0
)
shift
goto :parse_args
:end_parse_args

REM 检查Docker是否安装
REM Check if Docker is installed
where docker >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
    echo 错误: Docker未安装
    echo Error: Docker not installed
    echo 请先安装Docker Desktop
    echo Please install Docker Desktop first: https://docs.docker.com/desktop/install/windows-install/
    pause
    exit /b 1
)

REM 检查Docker是否运行
REM Check if Docker is running
docker info >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
    echo 错误: Docker未运行
    echo Error: Docker not running
    echo 请启动Docker Desktop应用程序
    echo Please start Docker Desktop application
    pause
    exit /b 1
)

REM 检查docker-compose.yml文件是否存在
REM Check if docker-compose.yml file exists
if not exist "%COMPOSE_FILE%" (
    echo 错误: 未找到%COMPOSE_FILE%文件
    echo Error: %COMPOSE_FILE% file not found
    echo 请确保在正确的目录中运行此脚本
    echo Please make sure you are running this script in the correct directory
    pause
    exit /b 1
)

REM 检查Docker Compose命令
REM Check Docker Compose command
where docker-compose >nul 2>nul
if %ERRORLEVEL% EQU 0 (
    set COMPOSE_CMD=docker-compose
) else (
    echo 尝试使用新的docker compose命令...
    echo Trying to use new docker compose command...
    docker compose version >nul 2>nul
    if %ERRORLEVEL% EQU 0 (
        set COMPOSE_CMD=docker compose
    ) else (
        echo 错误: 未找到Docker Compose命令
        echo Error: Docker Compose command not found
        echo 请确保Docker Desktop已正确安装
        echo Please make sure Docker Desktop is properly installed
        pause
        exit /b 1
    )
)

echo 启用Docker BuildKit加速构建...
echo Enabling Docker BuildKit to accelerate build...

REM 清理缓存(如果指定)
REM Clean cache (if specified)
if %CLEAN_CACHE% EQU 1 (
    echo 清理缓存目录...
    echo Cleaning cache directory...
    if exist "%CACHE_DIR%" rmdir /s /q "%CACHE_DIR%"
)

REM 创建缓存目录
REM Create cache directory
if not exist "%CACHE_DIR%" (
    echo 创建缓存目录...
    echo Creating cache directory...
    mkdir "%CACHE_DIR%"
)

REM 添加构建时间标记
REM Add build time tag
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YEAR=%dt:~0,4%"
set "MONTH=%dt:~4,2%"
set "DAY=%dt:~6,2%"
set "HOUR=%dt:~8,2%"
set "MINUTE=%dt:~10,2%"
set "BUILD_TIME=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%"
set "BUILD_ARGS=%BUILD_ARGS% --build-arg BUILD_TIME=%BUILD_TIME%"

REM 构建Docker镜像
REM Build Docker image
echo 开始构建Docker镜像...
echo Starting to build Docker image...

if "%SERVICE%"=="" (
    if %REBUILD% EQU 1 (
        echo 强制重新构建所有服务...
        echo Force rebuilding all services...
        %COMPOSE_CMD% build --no-cache %BUILD_ARGS%
    ) else (
        %COMPOSE_CMD% build %BUILD_ARGS%
    )
) else (
    if %REBUILD% EQU 1 (
        echo 强制重新构建服务 %SERVICE%...
        echo Force rebuilding service %SERVICE%...
        %COMPOSE_CMD% build --no-cache %BUILD_ARGS% %SERVICE%
    ) else (
        echo 构建服务 %SERVICE%...
        echo Building service %SERVICE%...
        %COMPOSE_CMD% build %BUILD_ARGS% %SERVICE%
    )
)

if %ERRORLEVEL% EQU 0 (
    echo Docker镜像构建成功!
    echo Docker image build successful!
    echo 构建时间: %BUILD_TIME%
    echo Build time: %BUILD_TIME%
    echo 可以使用以下命令启动容器:
    echo You can use the following command to start the container:
    echo %COMPOSE_CMD% up -d
) else (
    echo Docker镜像构建失败,请检查错误信息。
    echo Docker image build failed, please check error messages.
)

pause