44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
# 离线部署
|
||
|
||
cd /opt/speakr
|
||
|
||
# 1. 导入镜像(无需网络)
|
||
docker load -i speakr.tar
|
||
|
||
# 2. 一次性:从镜像里取出前端构建产物和完整 vendor 离线依赖,补进宿主机代码目录
|
||
docker create --name speakr-tmp speakr:latest
|
||
docker cp speakr-tmp:/app/static/vite ./static/
|
||
docker cp speakr-tmp:/app/static/vendor ./static/
|
||
docker rm speakr-tmp
|
||
|
||
# 3. 准备 .env(按转写方式二选一,然后编辑填入密钥等配置)
|
||
cp config/env.asr.example .env # 自建 ASR 服务用这个
|
||
# cp config/env.whisper.example .env # Whisper API 用这个
|
||
|
||
|
||
cd /home/wjs/speakr/speakr
|
||
|
||
# 1. 把服务器上这份脚本的 CRLF 转成 LF,并确保可执行
|
||
sed -i 's/\r$//' scripts/docker-entrypoint.sh
|
||
chmod +x scripts/docker-entrypoint.sh
|
||
|
||
# 2. 删掉一直重启的旧容器
|
||
docker rm -f speakr
|
||
|
||
# 3. 重新启动:多加一条单文件挂载,用修好的脚本覆盖镜像里那份坏的
|
||
docker run -d \
|
||
--name speakr \
|
||
--restart unless-stopped \
|
||
-p 5000:8899 \
|
||
-v /home/wjs/speakr/speakr:/app \
|
||
-v /home/wjs/speakr/speakr/scripts/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh \
|
||
-v /home/wjs/speakr/uploads:/data/uploads \
|
||
-v /home/wjs/speakr/instance:/data/instance \
|
||
speakr:v2
|
||
|
||
# 4. 确认启动正常(应看到"数据库不存在,正在创建..."之类的日志)
|
||
docker logs -f speakr
|
||
|
||
# 合并压缩
|
||
|
||
cat speakr.tar.part* > speakr.tar |