spring - docker 化的 postgres 和 docker 化的 Spring boot 应用程序

标签 spring postgresql docker spring-boot dockerfile

我的 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

我正在使用命令对 postgres 进行 dockerizing

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 的初学者,并从教程中学习它。将 Postgresql 和 Spring boot 应用程序通信 dockerized。

最佳答案

如果你需要在没有 docker-compose 的情况下对它们进行 dockerize

应用程序配置

spring.datasource.url=jdbc:postgresql://init-postgres:5432/dbname

  1. 创建网络

docker 网络创建 mynet

  1. 使用创建的网络运行 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

  1. 创建jar 存档
mvn clean
mvn compile
mvn package 
  1. 创建 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"]
  1. 构建 spring boot 镜像 myapp

docker build -t myapp .

  1. 运行 spring boot 容器

docker run --name myapp-container --net mynet -p 8080:8080 myapp

关于spring - docker 化的 postgres 和 docker 化的 Spring boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52740054/

相关文章:

java - (xml)cvc-complex-type.2.4.a : Invalid content was found starting with element 'init-param'

python - Django JSONField

mysql - 想在查询中添加if条件

sql - Rails 中的原始数据库查询

docker - 添加让我们使用 docker 在 nginx 上加密

docker - 为什么Docker虚拟化比VM更快

java - Spring ReadOnly Transaction with Propagation.SUPPORTS with WebSphere 和 Oracle

java - 使用 Restcontroller 将空值转换为空字符串

java - ActiveMq Broker : WARN [Transport:203] Transport Connection to: StompSocket_1661562307 failed: java. io.IOException 中的错误:已关闭 1006:null

docker - 如何知道docker容器为何重启