spring - dockerized postgres 和 dockerized Spring boot app
问题描述
我的 application.properties 文件
server.port=8085
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://init-postgres:5432/dbname
spring.datasource.username=username
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
对于 dockerizing postgres 我正在使用命令
docker run -d -p 5432:5432 --name init-postgres -e POSTGRES_DB=dbname -e POSTGRES_USER=username -e POSTGRES_PASSWORD=password postgres
但它给出了java.net.UnknownHostException: init-postgres 我是 Docker 的初学者并从教程中学习它。dockerized Postgresql & Spring boot app 通信。
解决方案
如果您需要在没有 docker-compose 的情况下对它们进行 dockerize
应用程序.config
spring.datasource.url=jdbc:postgresql://init-postgres:5432/dbname
- 创建网络
docker network create mynet
- 使用创建的网络运行 postgres 容器
docker run --net mynet --name init-postgres -d -e POSTGRES_DB=dbname -e POSTGRES_USER=username -e POSTGRES_PASSWORD=password -p 5432:5432 postgres
- 创建jar存档
mvn clean
mvn compile
mvn package
- 创建 dockerfile
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/<HERE_IS_NAME_OF_YOUR_JAR_FILE>.jar
COPY ${JAR_FILE} myapp.jar
EXPOSE 8085
ENTRYPOINT ["java","-jar" , "/myapp.jar"]
- 构建spring boot镜像myapp
docker build -t myapp .
- 运行 Spring Boot 容器
docker run --name myapp-container --net mynet -p 8080:8080 myapp
推荐阅读
- laravel - 存储中文件的 Laravel URL 在浏览器中不起作用
- javascript - jQuery改变标签的来源
- javascript - 使用 Next.js 和 react-apollo 配置 Material UI;正确使用 getDataFromTree
- javascript - 如何使用本地存储保存选定颜色的特定按钮?
- c# - 如何在 C# 中使用带有 ProtectSection 方法的 RsaProtectedConfigurationProvider 创建可导出的 RSA 密钥
- r - 为什么在少于 50% 的经验事件时,生存曲线总和为 100%?
- python - 如何解决使用 pandarallel 时出现“无法腌制本地对象”错误
- dashboard - Cognos Analytics Dashboard - 条形图中的基线
- powershell - 在 PowerShell 中使用 Collections.Generic.List[Int] 和 Collections.Generic.List``1[Int] 有区别吗?
- python - Python 3.6 从具有大小的数组创建映射