首页 > 解决方案 > 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 通信。

标签: springpostgresqldockerspring-bootdockerfile

解决方案


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

应用程序.config

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

  1. 创建网络

docker network create 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


推荐阅读