1.部署war包
- 将项目打war包
- docker下载并启动tomcat镜像
注意容器卷共享文件
- 将war包导入tomcat ROOT目录下 或者 直接将项目名改为ROOT这样就会直接访问到项目,路径不需要项目名称
参考:Docker学习(入门)_Seanliuo-CSDN博客
2.部署jar包
需要考虑问题:数据库 redis mq等服务访问。
数据库,redis 访问采用的是外部访问,既:服务器地址+服务的端口号
docker部署运行所需服务:
docker 需要有正在运行的mysql
,redis
等项目所需服务的镜像,且端口放行,可以供外部访问使用。
Redis
#拉取redis的镜像
docker pull redis
#查看本地redis镜像
docker images
#运行redis
docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes
参数说明:
docker run表示运行的意思
–name myredis 表示起个名字叫myredis
-p 6379:6379表示把服务器的6379映射到docker的6379端口,这样就可以通过服务器的端口访问docker的端口
-d 表示以后台服务形式运行redis
redis redis-server --appendonly yes表示开启持久化缓存模式,可以存到硬盘
Mysql
#拉取Mysql镜像
docker pull mysql:5.7 # :后可以指定拉取版本号
#运行mysql镜像
docker run -d -p 3307:3307 -v /usr/local/mysql5.7/conf:/etc/mysql/conf.d -v /usr/local/mysql5.7/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root
–name mysql5.7 mysql:5.7参数说明:
docker run
-d # 启动并后台运行
-p 3307:3307 # 端口
-v /usr/local/mysql5.7/conf:/etc/mysql/conf.d # 数据卷共享
-v /usr/local/mysql5.7/data:/var/lib/mysql # 共享表结构数据
-e MYSQL_ROOT_PASSWORD=root # 设置root账号的密码为root
–name mysql5.7 # 起别名
mysql:5.7 # 使用的镜像其他说明:
/usr/local/mysql5.7 # 服务器mysql地址
/usr/local/mysql5.7/conf # 服务器mysql 的配置文件
/usr/local/mysql5.7/data # 服务器mysql 的数据文件
准备jar包
如:mysql的使用案例
mysql --> 47.102.107.124:3306/casual_buy
redis的使用案例
redis -->
redis: host: 47.102.107.124 port: 6379
-
保证项目使用外部服务且能正常运行
-
暂停项目 - - > 清除项目 - - > 打包项目
jar
-
将打包好的
jar
放入服务器的某一路径 如:/usr/local/SpringBoot 文件夹中 -
在jar所在同级目录中创建文件
Dockerfile
文件内容为–>FROM java:8 EXPOSE 9090 VOLUME /tmp COPY vueadmin.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar"]
注意文件参数
FROM java:8 表示基于jdk8环境 EXPOSE 9090 表示对外暴露的端口是8080 和jar项目的端口对应(不对应不知道啥后果,没试) VOLUME /tmp 表示挂载到/tmp目录 ADD eblog-0.0.1-SNAPSHOT.jar /app.jar 表示把jar包复制到镜像服务里面的根目录,并改名称app.jar RUN bash -c 'touch /app.jar' 表示执行创建app.jar ENTRYPOINT ["java","-jar","/app.jar"] 表示执行启动命令java -jar **重点** eblog-0.0.1-SNAPSHOT.jar 需要更改为自己的项目jar名字
-
最后生成镜像 - - > 构建镜像,注意后面有个点。
docker build -t eblog . # eblog 是生成镜像的名字 可以更改 如: docker build -t casual-buy .
-
查看镜像
docker images
-
启动镜像
docker run -d -p 9090:9090 --name casual-buy casual-buy #服务器记得放开端口
docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog
-
测试
访问 服务器地址+端口号。。。项目
3.部署vue打包项目
部署vue项目之前需要部署nginx
部署nginx
-
docker pull nginx
-
查看镜像
docker images
-
创建
nginx
目录,用来存放打包后的vue项目
和nginx配置
如 : /usr/local/nginx
-
进入上一步创建的目录中
cd /usr/local/nginx
-
创建
nginx.conf
文件文件内容为:- - >
linux读写文件不会,自觉百度
#user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html last; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
-
nginx部署设置完成
-
注意点:
- vue解压后的项目可以放在与配置文件同级目录,并命名为项目名称,避免记混淆
vue打包部署
-
将vue项目访问的后台路径更改为
服务器中的地址
-
测试是否正常运行
-
打包vue项目
-
npm run bulid
打包时项目中有console.log() 可能会打包异常
第一种办法:请参考2020-vue疑难杂症-vue 中项目打包由于console.log导致打包不 - 简书 (jianshu.com)
第二种方法:让
console.log()
消失!!(注释即可)
-
-
生成
dist
文件dist文件可以更改为项目的名称 --> 方便记录
-
压缩上传服务器
-
进如压缩包所在的目录下
cd /usr/local/vue
-
进行解压
unzip casual-buy-app.zip -d /usr/local/nginx/casual-buy-app
-
生成启动镜像
docker run -d -p 9091:80 -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/casual-buy-app:/usr/share/nginx/html --name casual-buy-app nginx
参数解释:
docker run -d -p 9091:80 -->前面的是要启动的端口号 : 后面的需要对应nginx配置文件的端口(无特殊要求建议不更改,也不需要更改) -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -->nginx配置文件路径 : 后面不需要更改 -v /usr/local/nginx/casual-buy-app:/usr/share/nginx/html -->vue项目解压后的目录 :不需要更改 --name casual-buy-app --> 启动容器的别名 nginx 启动的镜像
-
查看镜像
docker ps
-
测试访问
ojbk