看了网上不少文章,走了很多坑,最后做下总结与流程提供一下.
1,tomcat java geoserver 版本对应问题 ,如果直接用网上的拉取tomcat镜像 java版本与geoserver版本不对应无法启动
制作DockerFile :
FROM centos
#作者
MAINTAINER fuckyou
#拷贝tomcat jdk 到镜像并解压
ADD apache-tomcat-8.5.76.tar.gz /usr/local/tomcat
ADD jdk-8u321-linux-x64.tar.gz /usr/local/jdk
#定义交互时登录路径
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk 和tomcat环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_321
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.76
ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.76
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#设置暴露的端口
EXPOSE 18080
#运行tomcat
CMD /usr/local/tomcat/apache-tomcat-8.5.76/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.76/logs/catalina.out
制作镜像
docker build -t tomcat:8.0 .
2制作Docker-compose.yml
version: '3'
services:
tomcat8:
restart: always
image: tomcat:8.0
container_name: tomcat8
privileged: true
ports:
- 18080:8080
volumes:
- ./courage/:/usr/local/tomcat/apache-tomcat-8.5.76/webapps/
- ./conf/:/usr/local/tomcat/apache-tomcat-8.5.76/conf/
environment:
TZ: Asia/Shanghai
3将tomcat 原本的conf ,webapps 文件内容复制到 宿主机映射的目录里
:
这里可以选中 docker cp:容器id 的方式 把相应的文件复制出来 也可以去别的地方复制
3 修改用户权限
vim tomcat-users.xml
添加如下代码:
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-status" />
<role rolename="manager-jmx" />
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-status,manager-jmx" />
</tomcat-users>
切进/webapps/manager/META-INF文件夹,编辑里面的context.xml文件,将以下内容注释掉。
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
最后 docker-compose up -d 就可以了