Web项目部署
1、将需要用到的数据库、Redis、mongoDB、RabbitMQ、Nacos等连接地址修改为可以访问到的地址,然后将项目打包为war包。流程如下:
从项目的Artifacts添加一个Web Application:Archive
右键依赖 Put into /WEB-INF/lib,然后点击OK
Build Artifacts
控制台输出编译后的包所在的位置
Building artifact 'carRental:war'...
Building artifact 'carRental:war': copying files...
Building archives...
Building E:/workspace/idea/carRental/out/artifacts/carRental_war/carRental_war.war...
2、使用文件上传工具将该war包上传到挂载的tomcat/webapps中,并进行nginx的配置,配置如下:
#nginx配置文件引入自定义配置
cd /mydata/nginx/conf
vi nginx.conf
include /etc/nginx/conf.d/*.conf;
新建nginx配置,设置页面跳转
cd /mydata/nginx/conf/conf.d
cp default.conf carRental.conf
vi carRental.conf
server {
listen 80;
server_name 【192.168.203.100】:8080虚拟机地址;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
proxy_pass http://【192.168.203.100】:8080虚拟机地址;
}
}
重启tomcat和nginx
docker restart tomcat
docker restart nginx
3、访问测试
访问tomcat首页时出现404错误。
原因是容器中有webapps和webapps.dist两个文件,而webapps里面没有东西,webapps.dist才是我们要的东西
解决办法:
#进入tomcat容器
docker exec -it tomcat /bin/bash
#把webapps.dist中所有文件复制到webapps中
cp -r webapps.dist/. /usr/local/tomcat/webapps
解决了容器报404错误后,在容器内使用ctrl+p+q
不退出容器的方式返回到宿主机目录下。
因为如果退出容器目录后,容器停止再次启动时是镜像的另一个容器。所以需要对镜像进行修改。
使用docker commit命令将修改后的容器生成新的镜像。
docker commit命令详解
作用:将运行着的容器映射成新的镜像
格式:docker commit -a=‘作者’ -m=‘修改内容’ 容器名称或ID 新生成镜像名称
docker commit -a=‘123’ -m=‘调整webapps目录’ tomcat idea/tomcat
删除原来容器,根据新的镜像创建容器即可。
docker stop tomcat
docker rm tomcat
docker run -p 8080:8080 --name tomcat -v /mydata/tomcat:/usr/local/tomcat/webapps -d --restart=always idea/tomcat
其它
申请域名后,域名只能解析到具体服务器,不能到具体项目,想要输入域名后就直接打开具体项目,需要在挂载文件夹将解压后的项目文件夹(需要运行一次才能有文件夹)替换掉ROOT文件夹。