因为tomcat容器里面没有mysql数据库,要在容器里面配置很麻烦。所以直接弄个mysql容器,然后jpress用mysql容器创建的数据库。
没记错的话现在的163镜像已经不太好使了,你换阿里云的试试
https://gitee.com/GalaIO/jpress/blob/master/wars/jpress-web-newest.war,下载这个地址的WAR包,然后按照老师的步骤 vi Dockerfile;docker build;docker exec -it [container Id] bash
因为数据库是没有和jpress安装在同一个容器中
阿里云需要配置出入站规则
jpress.war 的路径是相对于Dockerfile文件的,视频里老师的war包和文件是一个目录,要是其他目录是要有相对径的
应该是用的jpress版本太新了,用视频里的0.4.0版本就没问题
在另一个课程中老师这么说(大概意思):“linux中也可以直接放tomcat,node.js项目之类的,但是项目之间会有冲突,比如A项目出现故障无法结束,占用着内存资源,势必会对其他项目造成印象。引入docker后,由于docker的隔离性,使得项目之间独立不会有冲突。”
关闭linux的防火墙就可以我用到是centos7用这个:systemctl stop firewalld.service,禁止开机启动 systemctl disable firewalld.service
进入到jpress里看log, 才发现问题所在, 我是在Windows上开VMWare, 用的docker, 在docker里的APP不能访问虚拟机外面的(也就是Windows系统)ip地址. 博主的docker是直接安装在系统上的, 还是Mac好!
用Dockerfile呢
docker pull mysql:5.6
docker run -d -p 3306:3306 --name mysql5.6 -e MYSQL_DATABASE="jpress" -e MYSQL_ROOT_PASSWORD="1234" mysql:5.6
docker run -d -p 8888:8080 --link mysql5.6:mysql jpress
会覆盖
很明显告诉你mysql.user表不存在
在程序里根据ip来连接
我不是老师, 帮忙尝试回答你的问题。 你指的应用名称是这个镜像的名称吗?在你创建镜像的时候,可以跟一个-t的参数。 例如:#docker build -t jpress ./
解决办法:
1:进入tomcat容器内部 docker exec -it 60 bash
2. cd到tomcat的webapps目录下
3. 输入 ls 展示该目录下的所有文件,
对于我来说,正确访问的应该是 jpress-web-newest
解决办法:https://blog.csdn.net/lililuni/article/details/83269793
webapps后面加个“/”