You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

群晖NAS中Docker容器启动时Shell脚本失效问题求助

群晖Docker Ubuntu容器PM2自动启动服务失败问题

在群晖(Synology)NAS上安装Docker后,创建了运行Ubuntu实例的容器部署名为dodoc的网站服务,该服务需通过npm和pm2启动。手动在容器终端执行以下命令时,服务可正常运行:

cd /home
pm2 start dodoc
pm2 startup

希望容器启动时自动运行该服务,通常pm2 save可实现此功能,但在群晖NAS上无效。因此尝试通过容器CMD执行Shell脚本的方案,CMD配置为:

/bin/bash -c /root/Documents/startupCommands.sh

脚本startupCommands.sh内容如下:

#!/bin/bash

cd /home && pm2 start dodoc
cd /home && pm2 startup

/bin/bash

由于群晖NAS需在容器创建时设置CMD且无法修改,因此将脚本放在可外部访问的/root/Documents目录(对应NAS主机的/docker/dodoc目录)。手动在容器终端运行该脚本时一切正常,输出如下:

root@ubuntu-dodoc10:/home# /root/Documents/startupCommands.sh
[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /home/dodoc in fork_mode (1 instance)
[PM2] Done.

但容器启动时日志显示错误:

]0;root@ubuntu-dodoc10: /homeroot@ubuntu-dodoc10:/home# 
/root/Documents/startupCommands.sh: line 4: pm2: command not found
/root/Documents/startupCommands.sh: line 5: pm2: command not found

服务无法启动,已尝试以下方法:

  • 在根目录安装npm
  • 在脚本中使用(cd /home && pm2 start dodoc)格式的命令
  • 在/home目录创建另一个脚本并由第一个脚本调用

均未解决问题,容器配置信息如下:

{
   "CapAdd" : null,
   "CapDrop" : null,
   "cmd" : "/bin/bash -c /root/Documents/startupCommands.sh",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : true,
   "enable_service_portal" : null,
   "enabled" : true,
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      }
   ],
   "exporting" : false,
   "id" : "4fc2468eaf2a84c57ddb25f1818cdef6650a792d67ac6ad7d5d69e8fd470f8c0",
   "image" : "ubuntu:latest",
   "is_ddsm" : false,
   "is_package" : false,
   "links" : [],
   "memory_limit" : 1073741824,
   "name" : "ubuntu-dodoc-test",
   "network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",
   "port_bindings" : [],
   "privileged" : false,
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : true,
   "volume_bindings" : [
      {
         "host_volume_file" : "/docker/dodoc",
         "mount_point" : "/root/Documents",
         "type" : "rw"
      }
   ]
}

内容的提问来源于stack exchange,提问作者N_P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 06:16:02