claude-3-5-sonnet-20240620
$ docker run - d - p 3210 : 3210 \
- e OPENAI_API_KEY= sk- xxxx \
- e OPENAI_PROXY_URL= https: / / api- proxy. com/ v1 \
- e ACCESS_CODE= lobe66 \
-- name lobe- chat \
lobehub/ lobe- chat
Docker 部署 更新
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b2633ff1671 lobehub/ lobe- chat "docker-entrypoint.s…" 9 hours ago Up 9 hours 0.0 .0 .0 : 3210 - > 3210 / tcp, : : : 3210 - > 3210 / tcp lobe- chat
停止并删除当前运行的 LobeChat 容器
docker stop lobe- chat
docker rm lobe- chat
拉取最新的 LobeChat 镜像
docker pull lobehub/ lobe- chat
重新启动 Docker 容器
docker run - d - p 3210 : 3210 \
- e OPENAI_API_KEY= sk- xxxx \
- e OPENAI_PROXY_URL= https: / / api- proxy. com/ v1 \
- e ACCESS_CODE= lobe66 \
-- name lobe- chat \
lobehub/ lobe- chat
Crontab 自动更新脚本
crontab - l
# 更新 lobe- chat
* / 5 * * * * / root/ lobe- chat/ auto- update- lobe- chat. sh >> / root/ lobe- chat/ auto- update- lobe- chat. log 2 > & 1
/ root/ lobe- chat/ auto- update- lobe- chat. sh
#! / bin/ bash
# auto- update- lobe- chat. sh
# 记录日志的文件
LOG_FILE= "/var/log/lobe-chat-update.log"
# 记录日志函数
log ( ) {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee - a $LOG_FILE
}
# 拉取最新的镜像并将输出存储在变量中
output= $( docker pull lobehub/ lobe- chat: latest 2 > & 1 )
# 检查拉取命令是否成功执行
if [ $? - ne 0 ] ; then
log "Failed to pull the latest image: $output"
exit 1
fi
# 检查输出中是否包含特定的字符串
echo "$output" | grep - q "Image is up to date for lobehub/lobe-chat:latest"
# 如果镜像已经是最新的,则不执行任何操作
if [ $? - eq 0 ] ; then
log "Image is already up to date."
exit 0
fi
log "Detected Lobe-Chat update"
# 停止容器
stop_output= $( docker stop lobe- chat 2 > & 1 )
if [ $? - ne 0 ] ; then
log "Failed to stop the container: $stop_output"
exit 1
fi
log "Stop: $stop_output"
# 删除旧的容器
remove_output= $( docker rm - f Lobe- Chat 2 > & 1 )
if [ $? - ne 0 ] ; then
log "Failed to remove the container: $remove_output"
exit 1
fi
log "Removed: $remove_output"
# 运行新的容器
run_output= $( docker run - d -- network= host -- env- file / root/ lobe- chat/ lobe. env -- name= Lobe- Chat -- restart= always lobehub/ lobe- chat 2 > & 1 )
if [ $? - ne 0 ] ; then
log "Failed to start the new container: $run_output"
exit 1
fi
log "Started: $run_output"
# 打印更新的时间和版本
update_time= $( date)
version= $( docker inspect lobehub/ lobe- chat: latest | grep 'org. opencontainers. image. version' | awk -F' "' ' { print $4 } ')
log "Update time: $update_time"
log "Version: $version"
# 清理不再使用的镜像
cleanup_output= $( docker images | grep 'lobehub/ lobe- chat' | grep - v 'latest' | awk '{print $3}' | xargs - r docker rmi 2 > & 1 )
log "Removed old images: $cleanup_output"
log "Update process completed successfully."
参考
Lobe Chat 更新 Crontab 自动更新脚本