【备忘录】制作 Spring Boot 的 Docker 映像,并在 Docker 上运行的方法
首先
我想记录下在想要将Spring Boot应用程序容器化时所做的事情作为备忘录。
只需要提供一个选项:前提。
-
- Spring bootアプリケーションは既に作ってあるものとする
-
- Dockerの基礎知識がある
- Docker hubのアカウントを作っている
为了专注于这个问题,我们将文章设计成这样的形式。请注意(请参考其他人的文章)。
制作Spring Boot的Docker镜像
有两种方法。
-
- 使用云原生构建包
- 使用Dockerfile
在本篇文章中,我们将使用第一种方法。
请打开命令提示符,并按照以下步骤进行。
cd [アプリ化したいプロジェクトのフォルダのパス]
mvnw spring-boot:build-image -Dspring-boot.build-image.imageName=[docker hubのユーザ名]/[任意のimage名]:[tag]
使用这个简单的方法就能轻松地创建Docker镜像。太厉害了…
顺便说一下,在这里,我遇到了一个错误,原因是我在Windows的系统环境变量中把以前创建的JAVA_HOME与Java版本和Eclipse中使用的Java版本连接起来是不同的。 (当我查看mvnw的内容时,它会自动使用JAVA_HOME的版本)
在Docker上使用
我们来确认一下是否有形象(模型)了。目前仅在本地环境中创建。(Note: The translation assumes “イメージ” refers to a model or image created in a programming context, and “ローカル環境” refers to a local development environment. If the original context is different, please clarify for a more accurate translation.)
docker images
如果您想将图像注册到Docker Hub,请执行以下命令。
docker push [Docker hubのユーザ名]/[image名]:[tag]
赶快行动吧!
docker run -dit --name [コンテナ名] -p 8080:[spring-bootのserver.port] [ユーザ名]/[image名]:[tag]
这应该是可以在localhost:8080上连接的。
[spring-boot的server.port]默认为8080,如果没有特殊设置的话。
可以通过在application.properties文件中添加server.port=端口号来更改此数值为任意端口号。
由于在Docker上运行的Spring Boot应用程序将侦听此端口,因此请确保与其他容器的端口号不重复。
最后
我认为使用Cloud Native Buildpacks可以避免依赖于Dockerfile的写法。请务必尝试一下,Spring Boot很棒。