> Java > java지도 시간 > SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

PHPz
풀어 주다: 2023-05-14 20:55:04
앞으로
5325명이 탐색했습니다.

把SpringBoot项目打包成Docker镜像有两种方案:

全自动化:先打好docker镜像仓库,然后在项目的maven配置中配置好仓库的地址,在项目里配置好Dockerfile文件,这样可以直接在idea中打包好后自动上传到镜像仓库,然后去服务器上启动这个镜像就行了。

半自动化:半自动化又有两种方案,一种是Dockerfile文件放在项目里面,一种是放在项目外面。

  • 放在项目里面:springboot pom.xml中配置maven插件支持,打包时会使用项目里面的dockerfile,如果没配置插件支持会报错找不到dockerfile文件

  • 放在项目外面:springboot还是打包成普通的jar,然后把这个jar上传到服务器,同时在服务器创建一个Dockerfile文件,执行docker build命令,把这个jar构建成一个docker镜像,然后通过镜像执行。

一般来说用半自动化比全自动化用的多,本文用的算是半自动化方式的第二种,总体来说有一下几个步骤:

1. 构建SpringBoot项目

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

编写一个controller

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

进行本地测试

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

2. 打包应用

点击package将项目进行打包

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

打包成功

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

cmd运行java -jar能够运行成功

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

可以下载个Docker插件

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

3. 编写dockerfile

在target里面创建Dockerfile文件,此时Dockerfile文件是高亮的

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

Dockerfile配置内容(在Idea里面写Dockerfile会有提示)

#发布到网上时只会把jar包和Dockerfile发布上去
COPY *.jar /app.jar
#地址映射
CMD ["--server.port=8080"]
#对外暴露端口
EXPOSE 8080
#执行命令
ENTRYPOINT ["java","-jar","/app.jar"]
로그인 후 복사

4. 构建镜像

将jar包和Dockerfile文件拿出来新建个文件夹放里面,按住shift键打开PowerShell
(注意:本人电脑上安装的是Docker Desktop)

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

输入命令构建镜像,firstdocker是镜像名(最后的 . 表示 Dockerfile 文件在当前目录下)

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

查看构建好的镜像(不清楚命令的可以先学一下基础命令)

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

镜像构建成功后运行容器(第一个为服务器8080端口,第二个8080为docker容器端口)

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

可以看容器是否在运行和日志信息

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

访问成功

SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법

5. 发布运行

可以将镜像上传到dockerhub,以后使用Docker之后,给别人交付的就是一个镜像即可!

위 내용은 SpringBoot 프로젝트를 Docker 이미지로 패키징하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿