docker 基于jfinal.sh启动undertow导致容器进程守护问题

如果直接使用 jfinal.sh 启动,这时,只能创建容器成功,但就是运行不了。

这是因为docker容器运行必须有一个前台进程

而 jfinal.sh 文件里面执行的默认语句是后台进程

所以修改 jfinal.sh 如下:

function start()
{
    # 运行为后台进程,并在控制台输出信息
    # java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &

    # 运行为后台进程,并且不在控制台输出信息
    # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 &

    # 运行为后台进程,并且将信息输出到 output.log 文件
    # nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log &

    # 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务
    java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS}
}

*注释掉第一个,打开第四个


评论区

JFinal

2019-12-25 14:02

这个分享对 docker 环境下使用有价值,后来者可以少走弯路,谢谢你的分赞

热门分享

扫码入社