您現在的位置是:首頁 > 綜藝首頁綜藝

用Docker部署SpringBoot應用程式

由 原始碼時代 發表于 綜藝2023-01-06
簡介zip -d spring-boot-dockercd spring-boot-docker接下來,透過建立檔案新增一個web控制器srcmainjavacomoktaspringdockerdemoWebController

8g伺服器能執行幾個spring boot docker

Docker是一個用於建立容器的流行平臺——一組標準化的軟體單元,它們在單個包中組裝程式碼、執行時、依賴項、設定和初始化,您可以從一個計算環境可靠地執行到另一個包。將應用程式部署為Docker容器可以幫助您在多個環境(即dev、QA、暫存、生產)中順利地移動應用程式。

用Docker部署SpringBoot應用程式

本教程向您展示瞭如何利用Docker部署SpringBoot應用程式。

你需要的是:

Java 8+:用SDKMAN或直接來自AdoptOpenJDK

Docker:我推薦Docker Desktop

免費的Okta developer account稍後提供更多資訊

建立一個SpringBoot應用程式

你會用Docker的幫助下生成SpringBoot專案HTTPie,一個簡單的命令列HTTP客戶機。

如果不想使用命令列,可以直接使用SpringInitializr網站。

從命令列中只需輸入:

http https://start。spring。io/starter。zip \

dependencies==web,okta \

groupId==com。okta。spring-docker。demo \

packageName==com。okta。spring-docker。demo \

——download

然後解壓縮下載的檔案。

unzip demo。zip -d spring-boot-docker

cd spring-boot-docker

接下來,透過建立檔案新增一個web控制器

src/main/java/com/okta/springdocker/demo/WebController。java

package com。okta。springdocker。demo;

import org。springframework。web。bind。annotation。RequestMapping;

import org。springframework。web。bind。annotation。ResponseBody;

import org。springframework。web。bind。annotation。RestController;

@RestController

public class WebController {

@RequestMapping(“/”)

public String home() {

return “Welcome!”;

}

}

您還需要配置此專案的安全設定。目前,您希望允許所有的請求,所以更新您的

DemoApplication。java

存檔如下:

package com。okta。springdocker。demo;

import org。springframework。boot。SpringApplication;

import org。springframework。boot。autoconfigure。SpringBootApplication;

import org。springframework。context。annotation。Configuration;

import org。springframework。security。config。annotation。web。builders。HttpSecurity;

import org。springframework。security。config。annotation。web。configuration。WebSecurityConfigurerAdapter;

@SpringBootApplication

public class DemoApplication {

public static void main(String[] args) {

SpringApplication。run(DemoApplication。class, args);

}

@Configuration

static class OktaOAuth2WebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {

@Override

protected void configure(HttpSecurity http) throws Exception {

http。authorizeRequests()。anyRequest()。permitAll();

}

}

}

您可以透過以下方式編譯和執行您的應用程式:

。/mvnw package

java -jar target/demo-0。0。1-SNAPSHOT。jar

將SpringBootApp作為一個Docker容器執行

要將應用程式作為Docker容器執行

第一步就是安裝docker。

安裝之後,是時候構建您的容器了。

為此,Docker使用一個描述如何組裝容器的檔案,稱為Dockerfile。這個Dockerfile由在容器中執行的一步一步的指令組成。

注:

向伸出援助之手Dockerfile reference有關可以使用的所有命令的說明。

對於SpringBoot應用程式,您將使用一個簡單的

Dockerfile

檔案:

用Docker部署SpringBoot應用程式

現在,您可以在命令列上構建容器。在替換

okta:spring_boot_docker

帶著

標籤

根據您的喜好,它將用作引用您正在構建的容器的名稱:

docker build 。 -t okta:spring_boot_docker

如果一切順利,您現在可以執行您的Dockerizedapp(使用相同的

標籤

如你之前所用):

docker run ——publish=8080:8080 okta:spring_boot_docker

要阻止集裝箱,按下

Ctrl-C

。驗證容器沒有執行,執行:

docker ps

這將列出在您的機器上執行的所有容器。如果SpringBoot應用程式仍在執行,則可以使用(使用

集裝箱ID

印成

docker ps

):

docker kill

當您的JAR檔案在構建時被複制到容器中時,每次您想要使用新版本的應用程式時,都需要重新構建容器。因此,週期是:

更改您的程式碼

構建應用程式

。/mvnw package

構建容器

docker build 。 -t okta:spring_boot_docker

執行容器

docker run ——publish=8080:8080 okta:spring_boot_docker

停止集裝箱

環路

現在您已經瞭解了使用Docker容器執行應用程式的基本知識!接下來,您可以將已構建的容器釋出到Docker註冊中心(如DockerHub),這樣其他人就可以獲取容器,它就可以運行了。