群晖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
相关产品推荐
相关产品推荐

