Docker与Java开发 上篇

「这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战

在开发过程中使用Docker的承诺是提供一个一致的测试环境,跨开发者机器和使用中的各种环境(如QA和生产)。困难在于,Docker容器引入了一个额外的抽象层,开发人员必须在编码期间进行管理。

Docker使得应用程序代码可以与系统需求定义捆绑在一个跨平台、可运行的包中。这是一个优雅的抽象,解决了部署和管理软件运行时的基本需求,但它引入了一个额外的间接层,当程序员在做他们所做的事情时,必须处理好这个问题:反复修改和测试软件的内部及其依赖关系。

设置Java 和 Spring Boot

第一步是进入GCP控制台(如果你没有免费账户,请注册一个免费账户)。现在进入计算引擎链接,它将给你一个虚拟机的列表,然后点击创建实例。

如果你选择N1微型服务器,它将处于免费层。然而,Docker有点占用资源,所以我建议使用通用的E2服务器,我把我的命名为dev-1。

继续前进,为这个实例配置网络。点击虚拟机细节中间的网络选项卡,在网络标签领域,添加端口8080和端口8000。

现在去左边的菜单,打开VPC网络 -> 防火墙。创建两个新规则(点击创建防火墙规则按钮),允许所有源IP(0.0.0.0/0)访问TCP 8080端口,标签为port8080,以及TCP 8000端口,标签为port8000。有了这些,新的虚拟机实例将允许流量到你将在8080上创建的应用程序服务器,以及默认的Java调试端口8000。

通过点击回到计算机引擎->虚拟机实例,找到新的实例(dev-1),并点击SSH按钮,SSH到新的服务器。

现在让我们来设置Java。输入sudo apt-get update,然后是sudo apt-get install default-jdk。完成后,java -- 版本应该返回一个值。

接下来,通过SDKMAN(一个SDK管理器)安装Spring CLI,这样我们就可以从外壳上使用Initializr。运行以下命令。

sudo apt install zip\
curl -s "https://get.sdkman.io" | bash\
source "/home//. sdkman/bin/sdkman.sh"
复制代码

现在sdk版本应该可以工作了。

接下来用sdk install springboot安装Spring CLI工具。

现在你可以用以下命令快速创建一个新的Spring Boot Java网络应用。

spring init --dependencies=web idg-java-docker
复制代码

新项目将位于/idg-java-docker。继续前进,cd到该目录。

Spring Boot应用包含mvnw脚本,所以你不需要手动安装Maven。在开发模式下启动该应用,输入

sudo ./mvnw spring-boot:run。
复制代码

如果你在浏览器中导航到http://<你的实例 IP>:8080(你可以在GCP控制台的列表中找到该IP地址),你现在应该收到Spring白标错误页面,因为没有映射出路由。

感谢观看,如果您有兴趣,可以关注一下我,方便查看后续文章,一起学习,共同进步,不胜感激!

Guess you like

Origin juejin.im/post/7034681249864089613