日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 默认站点!

默认站点

當前位置: 首頁 >

带有PostgreSQL的Docker Compose for Spring Boot应用程序

發布時間:2023/12/3 36 豆豆
默认站点 收集整理的這篇文章主要介紹了 带有PostgreSQL的Docker Compose for Spring Boot应用程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在此博客文章中,您將學習如何使用PostgreSQL配置Spring Boot應用程序以與Docker Compose一起運行。

這篇博客文章涵蓋:

  • Spring Boot應用程序Dockerfile配置,在依賴關系和資源之間進行了清晰的分離
  • 用于通過PostgreSQL運行應用程序的Docker Compose配置

先決條件

  • 碼頭工人
  • Java 13
  • 終奌站
  • httpie(或curl)

應用

  • 使用Spring Web , Spring Data JPA , Spring Data REST , PostgreSQL JDBC Driver依賴項生成基于Maven的Spring Boot應用PostgreSQL JDBC Driver 。

可以在Github上找到本文的源代碼: https : //github.com/kolorobot/spring-boot-tc

Dockerfile

  • 創建Dockerfile
  • 基本Docker映像使用Alpine Linux:
FROM openjdk: 13 -alpine
  • 不要以root身份運行應用程序:
RUN addgroup -S spring && adduser -S spring -G spring USER spring:spring
  • 不要將胖子容器部署到容器中,而是將依賴項,應用程序類和資源拆分到單獨的層中:
ARG DEPENDENCY=target/dependency COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY ${DEPENDENCY}/META-INF /app/META-INF COPY ${DEPENDENCY}/BOOT-INF/classes /app

注意:如果您有基于Gradle的項目,則可以使用ARG來調整目錄: docker build --build-arg DEPENDENCY=build/dependency -t spring-boot-tc .

  • 通過在java命令中指向主類和庫,在容器內運行應用程序:
ENTRYPOINT [ "java" , "-cp" ENTRYPOINT [ "-cp" , "app:app/lib/*" , "pl.codeleak.samples.springboot.tc.SpringBootTestcontainersApplication" ]

完整的Dockerfile :

FROM openjdk: 13 -alpine RUN addgroup -S spring && adduser -S spring -G spring USER spring:spring ARG DEPENDENCY=target/dependency COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY ${DEPENDENCY}/META-INF /app/META-INF COPY ${DEPENDENCY}/BOOT-INF/classes /app ENTRYPOINT [ "java" , "-cp" ENTRYPOINT [ "-cp" , "app:app/lib/*" , "pl.codeleak.samples.springboot.tc.SpringBootTestcontainersApplication" ]

Docker新手? Docker在12分鐘內進行了解釋: https : //www.youtube.com/watch?v = YFl2mCHdv24

Docker撰寫

  • 創建docker-compose.yml
  • 我們將提供兩項services : db用于PostgreSQL數據庫和app用于應用程序
    • db服務將使用公共存儲庫中的postgres映像,它將向主機公開端口5432 ,并將環境屬性POSTGRES_*傳遞給容器以設置數據庫名稱,用戶和密碼。

完整docker-compose.yml :

version: '3' services: db: image: "postgres" ports: - "5432:5432" environment: POSTGRES_DB: tc POSTGRES_USER: tc POSTGRES_PASSWORD: tc app: build: . ports: - "9000:8080" environment: SPRING_DATASOURCE_URL: jdbc:postgresql: //db/tc SPRING_DATASOURCE_USERNAME: tc SPRING_DATASOURCE_PASSWORD: tc depends_on: - db

Docker Compose的新手? Docker Compose在12分鐘內進行了解釋: https : //www.youtube.com/watch?v = Qw9zlE3t8Ko

運行應用程序

  • 打包應用程序

$ ./mvnw clean package

要跳過測試,請使用: -DskipTests=true

  • 從fat-jar提取庫

$ mkdir -p target/dependency && (cd target/dependency; jar -xf ../*.jar)

  • 使用docker-compose運行

$ docker-compose build && docker-compose up

  • 驗證應用程序正在運行并響應請求
$ http get : 9000 /owners HTTP/ 1.1 200 Connection: keep-alive { "_embedded" : { "owners" : [] }, "_links" : { "profile" : { "href" : " http://localhost:8080/profile/owners " }, "self" : { "href" : " http://localhost:8080/owners {?page,size,sort}" , "templated" : true } }, "page" : { "number" : 0 , "size" : 20 , "totalElements" : 0 , "totalPages" : 0 } }

源代碼

可以在Github上找到本文的源代碼: https : //github.com/kolorobot/spring-boot-tc

參考文獻

  • https://spring.io/guides/gs/spring-boot-docker/
  • https://openliberty.io/blog/2018/06/29/optimizing-spring-boot-apps-for-docker.html

也可以看看

  • 使用JUnit 5進行Spring Boot測試
  • macOS:(Java)開發人員必備工具

翻譯自: https://www.javacodegeeks.com/2020/03/docker-compose-for-spring-boot-application-with-postgresql.html

總結

以上是默认站点為你收集整理的带有PostgreSQL的Docker Compose for Spring Boot应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得默认站点網站內容還不錯,歡迎將默认站点推薦給好友。