第八篇:SpringBoot项目制作Dockerfile镜像部署

在工作中部署项目貌似是运维人员的工作,很多开发者并不是很关注这方面,但现在在很多的IT互联网公司的实际开发中,其实开发和测试、运维的边界是会越来越小的,甚至会融为一体,你开发的项目往往需要你来测试,部署之后线上出了问题还是需要自己负责去维护,排查bug等,所以说运维更是开发人员中非常重要的一部分。

第一步:将SpringBoot项目打成jar包

利用idea的maven工具
常见的两种方式:

  1. 先点击clean,再点击package
  2. 先点击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上传到服务器
  1. 在 /usr/local/src/ 建立一个 dev 文件夹,在 dev 文件夹 建立一个 docker 文件夹
mkdir dev
mkdir docker
  1. 通过FTP 将 jar 包和 Dockerfile 上传到 docker 文件夹里面(放到同级目录)
    在这里插入图片描述
  2. 进入docker 文件夹
cd /usr/local/src/dev/docker/

查看 docker 文件夹的 文件

ls

在这里插入图片描述

  1. 构建 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

在这里插入图片描述

  1. 查看正在运行的容器,可以看到springboot-mybatis容器已经运行起来了
docker ps

在这里插入图片描述
8. 访问项目:http://115.29.149.49:8080/swagger-ui.html
在这里插入图片描述

看到这的都是人才,对你有所帮助的话,关注+转发+点赞 就是最大的支持!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Dockerfile 是一种文本格式文件,用于自动化配置并部署 SpringBoot 项目。它可以用来指定在 Docker 镜像中运行所需的环境变量,依赖项,文件等,以及如何安装和运行 SpringBoot 应用程序。 ### 回答2: 使用Dockerfile部署Spring Boot项目非常方便。下面是一个示例Dockerfile,用于部署一个简单的Spring Boot项目: ```Dockerfile # 使用官方的Java 11作为基础镜像 FROM openjdk:11-jre-slim # 将项目的jar文件复制到镜像中的/app目录 COPY target/*.jar /app/app.jar # 设置镜像的工作目录为/app WORKDIR /app # 暴露容器中的8080端口 EXPOSE 8080 # 声明容器启动时要执行的命令 CMD ["java", "-jar", "app.jar"] ``` 这个Dockerfile包含了几个关键步骤: 1. 使用openjdk:11-jre-slim作为基础镜像,该镜像包含了Java 11的运行时环境。 2. 将构建后的项目jar文件复制到镜像中的/app目录。 3. 设置镜像的工作目录为/app。 4. 使用EXPOSE命令暴露容器中的8080端口,这样外部可以访问该端口。 5. 声明容器启动时要执行的命令,即运行app.jar文件。 使用该Dockerfile构建镜像并运行容器的步骤如下: 1. 在项目根目录下创建Dockerfile文件,将上述内容复制到该文件中。 2. 打开命令行,进入项目根目录。 3. 运行`docker build -t my-app-image .`命令,创建名为my-app-image的镜像,注意最后的"."表示Dockerfile在当前目录。 4. 运行`docker run -p 8080:8080 my-app-image`命令,创建一个名为my-app-container的容器,并将容器中的8080端口映射到本地的8080端口上。 现在,Spring Boot项目将以容器的形式运行,并可以通过localhost:8080访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值