在工作中部署项目貌似是运维人员的工作,很多开发者并不是很关注这方面,但现在在很多的IT互联网公司的实际开发中,其实开发和测试、运维的边界是会越来越小的,甚至会融为一体,你开发的项目往往需要你来测试,部署之后线上出了问题还是需要自己负责去维护,排查bug等,所以说运维更是开发人员中非常重要的一部分。
第一步:将SpringBoot项目打成jar包
利用idea的maven工具
常见的两种方式:
- 先点击clean,再点击package
- 先点击clean,再点击install
解释:
- clean,清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。
- validate,验证,验证工程是否正确,所需的信息是否完整。
- compile,编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。
- test,单元测试,测试。
- package,打包,将工程文件打包为指定的格式,例如JAR,WAR等。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令了
- verify,核实,检查package是否有效、符合标准。
- install,安装至本地仓库,将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)
- build:功能类似compile,只是只对整个项目进行编译。
- site,站点,生成项目的站点文档
- deploy,复制到远程仓库
利用第一种方式后,在 target 包下会生成一个 jar 包
第二步:编写 Dockerfile 文件,保存名为Dockerfile
FROM java:8
VOLUME /tmp
ADD springboot-mybatis-0.0.1-SNAPSHOT.jar springboot-mybatis.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot-mybatis.jar"]
解释:
FROM :表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
VOLUME :VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD :拷贝文件并且重命名
ENTRYPOINT :为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT
第三步:将 jar 包和 Dockerfile 通过FTP上传到服务器
- 在 /usr/local/src/ 建立一个 dev 文件夹,在 dev 文件夹 建立一个 docker 文件夹
mkdir dev
mkdir docker
- 通过FTP 将 jar 包和 Dockerfile 上传到 docker 文件夹里面(放到同级目录)
- 进入docker 文件夹
cd /usr/local/src/dev/docker/
查看 docker 文件夹的 文件
ls
- 构建 docker 镜像,注意后面还有一个点
docker build -t springboot-mybatis .
5. 查看镜像,可以看到springboot-mybatis镜像和拉取的jdk8镜像
docker images
6. 运行构建好的springboot-mybatis镜像
docker run -d -p 8080:8080 --name springboot-mybatis springboot-mybatis
- 查看正在运行的容器,可以看到springboot-mybatis容器已经运行起来了
docker ps
8. 访问项目:http://115.29.149.49:8080/swagger-ui.html
看到这的都是人才,对你有所帮助的话,关注+转发+点赞 就是最大的支持!