modelscope-funasr的docker部署怎么实现自启动服务?每次开机docker启动后还得进容器手动启动?
要实现ModelScope-FunASR的Docker容器在系统启动时自动运行服务,可以通过以下步骤完成配置。以下是详细的实现方法:
在Linux系统中,Docker服务需要设置为开机自启动,以确保系统重启后Docker能够自动运行。
执行以下命令设置Docker开机自启动并检查状态:
sudo systemctl enable docker
sudo systemctl status docker
如果Docker服务已经设置为开机自启动,则无需重复操作。
为了实现容器内服务的自动启动,可以编写一个启动脚本,用于在容器启动时自动运行ModelScope-FunASR服务。
sudo vim start-funasr.sh
在脚本中添加以下内容(根据实际需求修改参数):
#!/bin/bash
# 启动Docker容器并运行ModelScope-FunASR服务
sudo docker run -d \
--name funasr-container \
-v /path/to/your/model:/models \
-p 8000:8000 \
your-docker-image-name \
/bin/bash -c "cd /models && python3 server.py"
说明: - --name funasr-container
:指定容器名称。 - -v /path/to/your/model:/models
:将宿主机上的模型路径挂载到容器内的/models
目录。 - -p 8000:8000
:将容器内的服务端口映射到宿主机。 - your-docker-image-name
:替换为实际使用的Docker镜像名称。 - /bin/bash -c "cd /models && python3 server.py"
:进入模型目录并启动服务。
保存并退出编辑器(按Esc
键,输入:wq
)。
赋予脚本可执行权限:
sudo chmod +x start-funasr.sh
通过创建Systemd服务文件,可以在系统启动时自动运行上述脚本。
sudo vim /etc/systemd/system/funasr.service
在文件中添加以下内容:
[Unit]
Description=Auto Start FunASR Docker Container
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
ExecStart=/path/to/start-funasr.sh
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
说明: - Description
:服务描述信息。 - After=docker.service
:确保Docker服务启动后再运行此服务。 - ExecStart
:指定启动脚本的路径,请替换为实际路径。 - RemainAfterExit=true
:表示服务启动后保持运行状态。
保存并退出编辑器。
重新加载Systemd配置并启用服务:
sudo systemctl daemon-reload
sudo systemctl enable funasr.service
启动服务并检查状态:
sudo systemctl start funasr.service
sudo systemctl status funasr.service
sudo reboot
sudo docker ps
如果容器已成功启动并运行服务,则配置完成。
/path/to/your/model
和your-docker-image-name
需要替换为实际值。sudo journalctl -u funasr.service
通过以上步骤,您可以实现ModelScope-FunASR的Docker容器在系统启动时自动运行服务,无需手动干预。