forked from justlovemaki/AIClient-2-API
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun-docker.bat
More file actions
65 lines (55 loc) · 2.25 KB
/
run-docker.bat
File metadata and controls
65 lines (55 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
@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! -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%:/home/nextjs/.aws/sso/cache" ^"
set "DOCKER_CMD=!DOCKER_CMD! -v "%GEMINI_CONFIG_PATH%:/home/nextjs/.gemini/oauth_creds.json" ^"
set "DOCKER_CMD=!DOCKER_CMD! --name gemini-cli2api ^"
set "DOCKER_CMD=!DOCKER_CMD! gemini-cli2api"
:: 显示将要执行的命令
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