摘要:在使用快速搭建基于的微服務(wù)時(shí),碰到了關(guān)于的問(wèn)題。通過(guò)解決這個(gè)問(wèn)題的過(guò)程,覺(jué)得有必要梳理一下在容器中啟用的方式。例如會(huì)將傳遞給容器通過(guò)定義如果基于,或使用文件部署鏡像,可以通過(guò)文件的標(biāo)簽傳遞。
在使用Spring Boot快速搭建基于Docker的微服務(wù)時(shí),碰到了關(guān)于spring.profiles.active的問(wèn)題。
具體可以參見(jiàn)我在stackoverflow的提問(wèn)。
https://stackoverflow.com/que...
通過(guò)解決這個(gè)問(wèn)題的過(guò)程,覺(jué)得有必要梳理一下在Docker容器中啟用Spring Profile的方式。
剛好看到一篇比較好的文章,翻譯了其中的大部分內(nèi)容。
======================= 如下為翻譯內(nèi)容 =============================
通過(guò)Dockerfile定義Spring Profile通常在命令行中我們可以使用“java -jar” 運(yùn)行 Spring Boot應(yīng)用。
而Profiles信息可以作為額外參數(shù)傳遞,比如“-Dspring.profiles.active=dev”
java -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -jar rest-api.jar
相似的,我們可以在Dockerfile中將Profile的信息作為參數(shù)傳遞進(jìn)去,例如:
FROM java:8 ADD target/my-api.jar rest-api.jar RUN bash -c "touch /user-service.jar" ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=dev","-jar","/rest-api.jar"]
需要注意最后的ENTRYPOINT一行,在這行中我們傳遞java命令以執(zhí)行jar文件,所有需要的參數(shù)和值以逗號(hào)方式分隔傳遞。
“-Dspring.profiles.active=dev” 是我們定義dev profile的地方,我們可以替換dev為任何需要的名字。
可以將spring profile作為環(huán)境變量傳遞給docker run命令,使用 -e 標(biāo)記。
例如 -e “SPRING_PROFILES_ACTIVE=dev”會(huì)將dev profile傳遞給Docker容器
docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" --name rest-api dockerImage:latest通過(guò)Docker Compose定義Spring Profile
如果基于DockerSwarm,或使用docker-compose.yml文件部署Docker鏡像,Spring Profile可以通過(guò)docker-compose.yml文件的 environment 標(biāo)簽傳遞。
例如:
... version: "3" services: rest-api: image: rest-api:0.0.1 ports: - "8080:8080" environment: - "SPRING_PROFILES_ACTIVE=dev" ...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/27039.html
摘要:本篇文章將介紹應(yīng)用如何打成包并將構(gòu)建為鏡像部署到中應(yīng)用打包需要配合打包將以下代碼放到應(yīng)用文件中執(zhí)行打打包命令命令執(zhí)行完成后在應(yīng)用目錄下會(huì)有打出來(lái)打包此包會(huì)包含應(yīng)用所有打依賴直接拷出這個(gè)包在命令行執(zhí)行應(yīng)用名就可以運(yùn)行了構(gòu)建鏡像 本篇文章將介紹springboot應(yīng)用如何打成jar包,并將jar構(gòu)建為docker鏡像部署到docker中 應(yīng)用打包 需要配合spring-boot-mave...
摘要:使用還是,根據(jù)個(gè)人喜好即可。如果錯(cuò)誤頁(yè)面也需要使用模板引擎動(dòng)態(tài)生成,那么放在下面的路徑。數(shù)據(jù)庫(kù)自動(dòng)配置嵌入式數(shù)據(jù)庫(kù)如果類路徑中包含或的相應(yīng)包,那么就會(huì)自動(dòng)配置這些嵌入式數(shù)據(jù)庫(kù)的實(shí)例和數(shù)據(jù)源。 本文參考自Spring Boot文檔。 Spring Boot 簡(jiǎn)介 Spring框架功能很強(qiáng)大,但是就算是一個(gè)很簡(jiǎn)單的項(xiàng)目,我們也要配置很多東西。因此就有了Spring Boot框架,它的作用很...
摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...
摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開(kāi)發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開(kāi)發(fā)最佳實(shí)踐 前面的章節(jié)中,...
摘要:此時(shí)可以嘗試或命令打包,安裝包內(nèi)的文件中占位符已被替換。整合原理項(xiàng)目中一般都會(huì)加上可以查看的文件,里面包含定義的值是這樣插件會(huì)將或文件中的替換為中對(duì)應(yīng)的值。 在Maven和Spring中,都有profile這個(gè)概念。profile是用于區(qū)分各種環(huán)境的,例如開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、正式環(huán)境等。Maven的profile用于在打包時(shí)根據(jù)指定環(huán)境替換不同環(huán)境的配置文件配置,如數(shù)據(jù)庫(kù)配置。Spri...
閱讀 972·2021-11-24 10:42
閱讀 3518·2021-11-19 11:34
閱讀 2654·2021-09-29 09:35
閱讀 2537·2021-09-09 09:33
閱讀 685·2021-07-26 23:38
閱讀 2527·2019-08-30 10:48
閱讀 1395·2019-08-28 18:07
閱讀 430·2019-08-26 13:44