AIClient-2-API/run-docker.bat
hex2077 faf215dae1 refactor(docker): 修改容器配置以使用root用户并更新运行参数
- 移除非root用户相关配置,改为直接使用root用户
- 添加容器运行时的用户ID、重启策略和特权模式参数
- 更新容器名称和挂载路径以匹配root用户
- 同步更新Windows和Linux的启动脚本
2025-08-12 12:40:30 +08:00

68 lines
No EOL
2.4 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
:: run-docker-with-credentials.bat
:: 生成指定的Docker运行命令使用USERPROFILE环境变量构建路径
setlocal enabledelayedexpansion
echo 正在生成指定的Docker运行命令...
:: 设置配置文件路径使用USERPROFILE环境变量
set "AWS_SSO_CACHE_PATH=%USERPROFILE%\.aws\sso\cache"
set "GEMINI_CONFIG_PATH=%USERPROFILE%\.gemini\oauth_creds.json"
:: 检查AWS SSO缓存目录是否存在
if exist "%AWS_SSO_CACHE_PATH%" (
echo 发现AWS SSO缓存目录: %AWS_SSO_CACHE_PATH%
) else (
echo 未找到AWS SSO缓存目录: %AWS_SSO_CACHE_PATH%
echo 注意AWS SSO缓存目录不存在Docker容器可能无法访问AWS凭证
)
:: 检查Gemini配置文件是否存在
if exist "%GEMINI_CONFIG_PATH%" (
echo 发现Gemini配置文件: %GEMINI_CONFIG_PATH%
) else (
echo 未找到Gemini配置文件: %GEMINI_CONFIG_PATH%
echo 注意Gemini配置文件不存在Docker容器可能无法访问Gemini API
)
:: 构建Docker运行命令使用USERPROFILE环境变量构建的路径
set "DOCKER_CMD=docker run -d ^"
set "DOCKER_CMD=!DOCKER_CMD! -u "$(id -u):$(id -g)" ^"
set "DOCKER_CMD=!DOCKER_CMD! --restart=always ^"
set "DOCKER_CMD=!DOCKER_CMD! --privileged=true ^"
set "DOCKER_CMD=!DOCKER_CMD! -p 3000:3000 ^"
set "DOCKER_CMD=!DOCKER_CMD! -e ARGS="--api-key 123456 --host 0.0.0.0" ^"
set "DOCKER_CMD=!DOCKER_CMD! -v "%AWS_SSO_CACHE_PATH%:/root/.aws/sso/cache" ^"
set "DOCKER_CMD=!DOCKER_CMD! -v "%GEMINI_CONFIG_PATH%:/root/.gemini/oauth_creds.json" ^"
set "DOCKER_CMD=!DOCKER_CMD! --name aiclient2api ^"
set "DOCKER_CMD=!DOCKER_CMD! aiclient2api"
:: 显示将要执行的命令
echo.
echo 生成的Docker命令:
echo !DOCKER_CMD!
echo.
:: 将命令保存到文件中
echo !DOCKER_CMD! > docker-run-command.txt
echo 命令已保存到 docker-run-command.txt 文件中,您可以从该文件复制完整的命令。
:: 询问用户是否要执行该命令
echo.
set /p EXECUTE_CMD="是否要立即执行该Docker命令(y/n): "
if /i "!EXECUTE_CMD!"=="y" (
echo 正在执行Docker命令...
!DOCKER_CMD!
if !errorlevel! equ 0 (
echo Docker容器已成功启动
echo 您可以通过 http://localhost:3000 访问API服务
) else (
echo Docker命令执行失败请检查错误信息
)
) else (
echo 命令未执行您可以手动从docker-run-command.txt文件复制并执行命令
)
echo 脚本执行完成
pause