Dockerfile使用Supervisor管理Tomcat

文章目录
  1. 1. supervisor管理tomcat
  2. 2. 使用Dockerfile构建镜像
  3. 3. 源码分享
  4. 4. 书签

supervisor管理tomcat

使用supervisor监控管理的进程必须以nodaemon启动,而tomcat的startup.sh脚本是daemon方式的,如果不做修改的话,supervisor会一直报错。

解决办法一:

在startup.sh的最后的

1
exec "$PRGDIR"/"$EXECUTABLE" start "$@"

改为

1
exec "$PRGDIR"/"$EXECUTABLE" run "$@"

然后supervisor_tomcat.conf内容为:

1
2
3
4
5
6
7
8
9
[program:tomcat]
directory=/opt/apache-tomcat-8.0.44
command=/opt/apache-tomcat-8.0.44/bin/startup.sh
environment=JAVA_HOME="/usr/lib/jvm/jdk1.8.0_131",JAVA_BIN="/usr/lib/jvm/jdk1.8.0_131/bin"
user=root
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log

解决办法二:
不需要修改startup.sh,还是使用catalina.sh。
然后supervisor_tomcat.conf内容为:

1
2
3
4
5
6
7
8
9
[program:tomcat]
directory=/opt/apache-tomcat-8.0.44
command=/opt/apache-tomcat-8.0.44/bin/catalina.sh run
environment=JAVA_HOME="/usr/lib/jvm/jdk1.8.0_131",JAVA_BIN="/usr/lib/jvm/jdk1.8.0_131/bin"
user=root
autostart=true
autorestart=true
stdout_logfile=/var/log/supervisor/%(program_name)s.log
stderr_logfile=/var/log/supervisor/%(program_name)s.log

使用Dockerfile构建镜像

1、下载dockerfile项目
在宿主机中,git clone https://github.com/voidking/dockerfile.git

2、进入supervisor文件夹
cd dockerfile/supervisor

3、拷贝/download目录到supervisor目录
cp -r /download download

4、构建一个名为centos/supervisor的镜像
docker build -t centos/supervisor .

5、测试启动镜像
docker run centos/supervisor

6、正式启动镜像
docker run -d -p 18080:8080 centos/supervisor

6、测试访问
curl localhost:18080

源码分享

https://github.com/voidking/dockerfile.git

书签

中国第一套Docker实战案例视频课程(入门到高级)

Docker实战案例源码

Docker实战案例文档

Linux后台进程管理利器:supervisor

tomcat使用supervisor管理