Spring boot + postgresql + docker-compose
написал приложение, которое работает с базой данных, после этого хотел бы упаковать его в docker. Несколько дней изучал данную тему, у авторов примеры работают, а реализовать с собственным приложением не могу. использую manjaro. Последовательность моих действий такова.
- Собственно создал приложение Spring Boot с подключил Postgresql
- Проверил работоспособность
- создал Dockerfile
- создал docker-compose.jml файл.
- выполнил команду
mvn clean package - выполнил команду
docker-compose up
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-boot-data-jpa</artifactId>
<packaging>jar</packaging>
<name>Spring Boot Spring Data JPA</name>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
<dependencies>
<!-- jpa, crud repository -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- PostgreSQL -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>
</plugins>
</build>
</project>
application.properties
## PostgreSQL
spring.datasource.url=jdbc:postgresql://dbpostgres:5432/filesystem
spring.datasource.username=postgres
spring.datasource.password=password
spring.jpa.generate-ddl=true
upload.path=/home/admin/Documents/forTest/
Dockerfile
FROM openjdk:8-jdk-alpine
MAINTAINER demo.example.com
VOLUME /tmp
EXPOSE 8080
ADD target/demo.jar demo.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/.urandom","-Dspring.profiles.active=container", "-jar", "/demo.jar"]
Docker-compose.yml
services:
app:
container_name: testcont
image: application
build: ./
ports:
- "8080:8080"
depends_on:
- dbpostgres
dbpostgres:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=postgres
- POSTGRES_DB=filesystem
В начале делаю mvn clean package
После этого выполняю команду docker-compose up
Реакции никакой от слова совсем
Структура проекта
