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