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

65 lines
No EOL
2.1 KiB
Bash
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.

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