我的 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
- 创建网络
docker 网络创建 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
关于spring - docker 化的 postgres 和 docker 化的 Spring boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52740054/