使用适用于 IntelliJ 的 Azure 工具包将 Spring Boot 应用作为 Docker 容器发布Publish a Spring Boot app as a Docker container by using the Azure Toolkit for IntelliJ

Spring Framework 是一种开放源代码解决方案,可帮助 Java 开发人员创建企业级应用程序。The Spring Framework is an open-source solution that helps Java developers create enterprise-level applications. 基于该平台构建的其中一个更常用的项目是 Spring Boot,该项目提供了简化的方法来创建独立的 Java 应用程序。One of the more-popular projects that is built on top of that platform is Spring Boot, which provides a simplified approach for creating standalone Java applications.

Docker 是一种开放源代码解决方案,可帮助开发人员自动部署、扩展和管理在容器中运行的应用程序。Docker is an open-source solution that helps developers automate the deployment, scaling, and management of their applications that are running in containers.

本教程会指导你完成使用适用于 IntelliJ 的 Azure 工具包将 Spring Boot 应用程序作为 Docker 容器部署到 Microsoft Azure 的步骤。This tutorial walks you through the steps to deploy a Spring Boot application as a Docker container to Microsoft Azure by using the Azure Toolkit for IntelliJ.

先决条件Prerequisites

若要完成文章中的步骤,需要安装用于 IntelliJ 的 Azure 工具包,该工具包需要以下软件组件:To complete the steps in his article, you will need to install the Azure Toolkit for IntelliJ, which requires the following software components:

备注

JetBrains 插件存储库中的 Azure Toolkit for IntelliJ 页列出了与该工具包兼容的内部版本。The Azure Toolkit for IntelliJ page at the JetBrains Plugin Repository lists the builds that are compatible with the toolkit.

克隆默认 Spring Boot Docker 存储库Clone the default Spring Boot Docker repo

以下步骤可指导你完成使用 IntelliJ 克隆 Spring Boot Docker 存储库的步骤。The following steps walk you through cloning the Spring Boot Docker repo by using IntelliJ. 如果要使用命令行,请参阅在 Azure 容器服务中将 Spring Boot 应用程序部署到 Linux 上If you want to use a command line, see Deploy a Spring Boot application on Linux in Azure Container Service.

  1. 打开 IntelliJ。Open IntelliJ.

  2. 在欢迎屏幕上,选择“从版本控制中签出” 列表中的“GitHub” 选项。On the welcome screen, select the GitHub option in the Check out from Version Control list.

    用于版本控制的 GitHub 选项

  3. 如果系统提示登录,请输入凭据。Enter your credentials if you are prompted to log in.

    • 如果使用用户名/密码登录到 GitHub:If you are using a username/password to log in to GitHub:

      用于输入 GitHub 用户名和密码的对话框

    • 如果使用令牌登录到 GitHub:If you are using a token to log in to GitHub:

      用于输入 GitHub 令牌的对话框

  4. 输入 https://github.com/spring-guides/gs-spring-boot-docker.git 作为存储库 URL,指定本地路径和文件夹信息,然后单击“克隆” 。Enter https://github.com/spring-guides/gs-spring-boot-docker.git for the repo URL, specify your local path and folder information, and then click Clone.

    “克隆存储库”对话框

  5. 当系统提示创建 IntelliJ 项目时,选择“否” 。When you're prompted to create an IntelliJ project, select No.

    拒绝创建 IntelliJ 项目

  6. 在欢迎屏幕上,单击“导入项目” 。On the welcome page, click Import Project.

    导入项目选择

  7. 找到克隆了 Spring Boot 存储库的路径,选择根路径下的“complete” 文件夹,然后单击“确定” 。Locate the path where you cloned the Spring Boot repo, select the complete folder under the root, and then click OK.

    选择用于导入的文件夹

  8. 出现提示时,选择“从现有源创建项目” 。When you're prompted, select Create project from existing sources.

    从现有源创建项目的选项

  9. 指定项目名称或接受默认设置,确认“complete”文件夹的路径正确无误 ,然后单击“下一步” 。Specify your project name or accept the default, verify the correct path to the complete folder, and then click Next.

    指定项目名称

  10. 自定义任何用于导入的目录,然后单击“Next”(下一步) 。Customize any directories for importing, and then click Next.

    选择目录

  11. 查看要导入的库,然后单击“Next”(下一步) 。Review the libraries to import, and then click Next.

    查看项目库

  12. 查看模块结构,然后单击“Next”(下一步) 。Review the module structure, and then click Next.

    查看模块结构

  13. 指定 JDK,然后单击“Next”(下一步) 。Specify your JDK, and then click Next.

    指定 JDK

  14. 单击“Finish”(完成) 。Click Finish.

    “完成”按钮

IntelliJ 会将 Spring Boot 应用作为项目导入,并在导入完成后显示结构。IntelliJ imports the Spring Boot app as a project and displays the structure when the import has finished.

IntelliJ 中的 Spring Boot 应用

生成 Spring Boot 应用Build your Spring Boot app

使用 Maven POM 生成应用Build the app by using the Maven POM

  1. 如果尚未打开 Maven 工具窗口,请打开它。Open the Maven tool window if it is not already opened. 单击“视图” > “工具窗口” > “Maven 项目” 。Click View > Tool Windows > Maven Projects.

    工具窗口和 Maven 项目命令

  2. 在 Maven 工具窗口中,右键单击“程序包” ,然后选择“运行 Maven 生成” 。In the Maven tool window, right-click package and select Run Maven Build. (如果 Maven 项目未自动显示,请单击 Maven 工具栏上的“重新导入” 图标。)(If your Maven project does not show up automatically, click the Reimport icon on the Maven toolbar.)

    运行 Maven 生成

  3. 成功创建了 Spring Boot 应用后,IntelliJ 应显示“生成成功”消息 。IntelliJ should display a BUILD SUCCESS message when your Spring Boot app is successfully created.

    生成成功消息

创建随时可用于部署的项目Create a deployment-ready artifact

若要发布 Spring Boot 应用,需要创建一个随时可用于部署的项目。To publish your Spring Boot app, you need to create a deployment-ready artifact. 请执行以下步骤:Use the following steps:

  1. 在 IntelliJ 中打开你的 Web 应用项目。Open your web app project in IntelliJ.

  2. 依次单击“File”(文件) 、“Project Structure”(项目结构) 。Click File, and then click Project Structure.

    “项目结构”命令

  3. 单击绿色加号(“+” )符号添加项目,然后依次单击“JAR”、“空” 。Click the green plus (+) symbol to add an artifact, click JAR, and then click Empty.

    添加项目

  4. 在确保不添加“.jar”扩展名的同时命名你的项目,然后指定 Maven 输出的目标文件夹。Name your artifact while making sure not to add the ".jar" extension, and then specify the target folder for the Maven output.

    指定项目属性

  5. 创建项目清单(可选):Create a manifest for your artifact (optional):

    a.a. 单击“Create Manifest”(创建清单) 。Click Create Manifest.

    单击“创建清单”按钮

    b.b. 选择项目的默认路径,然后单击“OK”(确定) 。Choose the default path for the artifact, and then click OK.

    指定项目路径

    c.c. 单击省略号“...” 找到主类。Click the ellipsis (...) to locate the main class.

    找到主类

    d.d. 选择主类,然后单击“OK”(确定) 。Choose your main class, and then click OK.

    指定主类

  6. 单击“确定”。 Click OK.

    关闭“项目结构”对话框

备注

有关在 IntelliJ 中创建项目的详细信息,请参阅 JetBrains 网站上的 Configuring Artifacts(配置项目)。For more information about creating artifacts in IntelliJ, see Configuring Artifacts on the JetBrains website.

生成要部署的项目Build the artifact for deployment

  1. 单击“Build”(生成) ,然后单击“Artifacts”(项目) 。Click Build, and then click Artifacts.

    “生成项目”命令

  2. 当出现“Build Artifact”(生成项目) 上下文菜单时,请单击“Build”(生成) 。When the Build Artifact context menu appears, click Build.

    “生成项目”上下文菜单

IntelliJ 应在项目工具窗口中显示 Spring Boot 应用的已完成项目。IntelliJ should display the completed artifact for your Spring Boot app in the project tool window.

创建的项目

使用 Docker 容器将 Web 应用发布到 AzurePublish your web app to Azure by using a Docker container

  1. 如果尚未登录到 Azure 帐户,请执行 Azure Toolkit for IntelliJ 的登录说明中的步骤。If you have not signed in to your Azure account, follow the steps in Sign-in instructions for the Azure Toolkit for IntelliJ.

  2. 在“项目资源管理器”工具窗口中,右键单击该项目,然后选择“Azure” > “Publish as Docker Container”(发布为 Docker 容器) 。In the Project Explorer tool window, right-click the project, and then select Azure > Publish as Docker Container.

    “发布为 Docker 容器”命令

  3. 当显示“在 Azure 上部署 Docker 容器” 对话框时,任何现有的 Docker 主机均会显示。When the Deploy Docker Container on Azure dialog box appears, any existing Docker hosts are displayed. 如果选择部署到现有主机,可以跳到步骤 4。If you choose to deploy to an existing host, you can skip to step 4. 否则,使用以下步骤创建主机:Otherwise, use the following steps to create a host:

    a.a. 单击绿色加号(“+” )符号。Click the green plus (+) symbol.

    添加新的 Docker 主机

    b.b. 当显示“创建 Docker 主机” 对话框时,可以选择接受默认设置,也可以为新的 Docker 主机指定任何自定义设置。When the Create Docker Host dialog box appears, you can choose to accept the defaults, or you can specify any custom settings for your new Docker host. (有关各种设置的详细说明,请参阅使用 Azure Toolkit for IntelliJ 将 Web 应用发布为 Docker 容器。)在指定了要使用的设置后,单击“下一步” 。(For detailed descriptions of the various settings, see Publish a web app as a Docker container by using the Azure Toolkit for IntelliJ.) Click Next when you have specified which settings to use.

    指定 Docker 主机选项

    c.c. 可以选择使用 Azure Key Vault 中的现有登录凭据,也可以选择输入新的 Docker 登录凭据。You can choose to use existing login credentials from an Azure key vault, or you can choose to enter new Docker login credentials. 在指定了选项后单击“完成” 。Click Finish when you have specified your options.

    指定 Docker 主机凭据

  4. 选择你的 Docker 主机,然后单击“下一步” 。Select your Docker host, and then click Next.

    选择要使用的 Docker 主机

  5. 在“在 Azure 上部署 Docker 容器” 对话框的最后一页上,指定以下选项:On the last page of the Deploy Docker Container on Azure dialog box, specify the following options:

    a.a. 可以选择为要托管 Docker 容器的容器指定一个自定义名称,也可以接受默认设置。You can choose to specify a custom name for the container that will host your Docker container, or you can accept the default.

    b.b. 使用以下语法输入 Docker 主机的 TCP 端口:[外部端口] :[内部端口] 。Enter the TCP ports for your docker host by using the following syntax: [external port]:[internal port]. 例如,“80:8080” 指定外部端口为“80”,默认的内部 Spring Boot 端口为“8080”。For example, 80:8080 specifies an external port of 80 and the default internal Spring Boot port of 8080.

    如果已自定义内部端口(例如通过编辑 application.yml 文件自定义),则需要指定端口号以便能够在 Azure 中进行正确路由。If you have customized your internal port (for example, by editing the application.yml file), you need to specify the port number for the correct routing to occur in Azure.

    c.c. 在配置了这些选项后,单击“完成” 。After you have configured these options, click Finish.

    在 Azure 上部署 Docker 容器

  6. Azure 工具包完成发布后,Azure 活动日志显示状态为“已发布” 。When the Azure Toolkit has finished publishing, the Azure Activity Log displays Published for the status.

    已成功部署 Docker 主机

后续步骤Next steps

若要了解使用 IntelliJ 创建 Spring Boot 应用的其他方法,请参阅 JetBrains 网站上的创建 Spring Boot 项目To learn about additional methods for creating Spring Boot apps by using IntelliJ, see Creating Spring Boot Projects on the JetBrains website.

若要报告 bug 或请求新功能,请在我们的 GitHub 存储库上创建问题。To report bugs or request new features, create issues on our GitHub repository. 或者,在 Stack Overflow 上使用标记 azure-java-tools 提出问题。Or, ask questions on Stack Overflow with tag azure-java-tools.

若要详细了解如何将 Java 与 Azure 配合使用,请参阅以下链接:For more information about using Java with Azure, see the following links: