Docker部署SpringBoot+MySQL项目

本文将讲述使用Dockerfile为SpringBoot项目构建docker镜像并部署,此种方式不需要依赖自建的镜像仓库,只需要应用的jar包和一个Dockerfile文件即可。

1.编写Dockerfile文件

# 该镜像需要依赖的基础镜像
FROM java:8

# 指定维护者的名字
MAINTAINER cxhello

# 将指定目录下的jar包复制到docker容器的/export/Apps/springboot-admin目录下
COPY springboot-admin-0.0.1-SNAPSHOT.jar /export/Apps/springboot-admin/springboot-admin-0.0.1-SNAPSHOT.jar

# 声明服务运行在8080端口
EXPOSE 8080

# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/export/Apps/springboot-admin/springboot-admin-0.0.1-SNAPSHOT.jar"]

2.构建docker mysql镜像

# 1.下载mysql镜像
docker pull mysql:5.5

# 2.创建mysql容器并启动
docker run -p 3306:3306 --name mysql \
-v /export/mysql/conf:/etc/mysql \
-v /export/mysql/log:/var/log/mysql \
-v /export/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456  \
-d mysql:5.5

# 3.将sql脚本拷贝到mysql容器的根目录下
docker cp /export/Apps/springboot-admin/data.sql mysql:/;

# 4.进入运行mysql的docker容器
docker exec -it 744d466a180b /bin/bash

# 5.使用mysql命令打开客户端
mysql -uroot -p123456 --default-character-set=utf8

# 6.修改root帐号的权限,使得任何ip都能访问
grant all privileges on *.* to 'root'@'%';

# 7.创建springboot_admin数据库:
create database springboot_admin character set utf8;

# 8.将sql文件导入到数据库
use springboot_admin;
source /data.sql;

3.使用Maven打包应用

将maven打包好的jar包和Dockerfile上传到指定路径下进行构建docker镜像,构建的时候要在Dockerfile文件的路径下进行操作

4.构建docker springboot应用镜像

# 1.构建docker springboot应用镜像
docker build -t springboot-admin/springboot-admin:0.0.1-SNAPSHOT .

# 2.创建容器并启动
docker run -d -p 80:8080 \
--name springboot-admin \
--link mysql:db \
-v /export/Logs/springboot-admin:/export/Logs/springboot-admin \
springboot-admin/springboot-admin:0.0.1-SNAPSHOT

# 3.进入运行项目的docker容器
docker exec -it springboot-admin /bin/bash

# 4.查看运行项目的日志
docker logs -f springboot-admin

5.注意事项

项目使用的MySQL服务也是基于Docker的,所以在使用Maven打包之前,需要修改一下数据库的连接配置(应用镜像需要关联mysql镜像,所以数据库配置改成别名)

--link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信。

# 其中mysql是指一个name为mysql的容器,db为为其指定的别名
docker run -d -p 80:8080 \
--name springboot-admin \
--link mysql:db \
-v /export/Logs/springboot-admin:/export/Logs/springboot-admin \
springboot-admin/springboot-admin:0.0.1-SNAPSHOT

中间在部署的时候出现了一些问题,项目打包的时候总是出错,报类似数据库连接的错误,这说明应该是你的pom.xml里面没有配置打包的时候跳过测试,在pom.xml添加 <skipTests>true</skipTests> 这一行,再次运行就可以了。

<properties>
	<java.version>1.8</java.version>
	<skipTests>true</skipTests>
</properties>

猜你喜欢

转载自blog.csdn.net/tianyucxh/article/details/105188854