- 将项目打war包docker下载并启动tomcat镜像
注意容器卷共享文件
- 将war包导入tomcat ROOT目录下 或者 直接将项目名改为ROOT这样就会直接访问到项目,路径不需要项目名称
参考:Docker学习(入门)_Seanliuo-CSDN博客
2.部署jar包需要考虑问题:数据库 redis mq等服务访问。
数据库,redis 访问采用的是外部访问,既:服务器地址+服务的端口号
docker部署运行所需服务: docker 需要有正在运行的mysql,redis等项目所需服务的镜像,且端口放行,可以供外部访问使用。
RedisMysql#拉取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表示开启持久化缓存模式,可以存到硬盘
准备jar包#拉取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 的数据文件
- 首先需要一个本地能正常运行的项目 将项目使用的本地服务更改为服务器中的服务
如: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 -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog 测试docker run -d -p 9090:9090 --name casual-buy casual-buy #服务器记得放开端口
访问 服务器地址+端口号。。。项目
参考地址:就几条命令,一键学会Docker部署SpringBoot项目 - 掘金 (juejin.cn)
部署vue项目之前需要部署nginx
部署nginxdocker 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项目
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



