mirror of
https://github.com/OtusTeam/Spring.git
synced 2026-05-30 10:50:42 +00:00
Fix docker example
This commit is contained in:
@@ -7,15 +7,16 @@ services:
|
||||
privileged: true
|
||||
ports:
|
||||
- "8080:8080"
|
||||
# Эти свойства перегружают соответствующие в application.yml
|
||||
environment:
|
||||
- DB_DRIVER=org.postgresql.Driver
|
||||
- DB_URL=jdbc:postgresql://postgres:5432/db
|
||||
- DB_USERNAME=postgres
|
||||
- DB_PASSWORD=postgres
|
||||
- WAIT_FOR=postgres:5432
|
||||
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.postgresql.Driver
|
||||
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/db
|
||||
- SPRING_DATASOURCE_USERNAME=postgres
|
||||
- SPRING_DATASOURCE_PASSWORD=postgres
|
||||
networks:
|
||||
- nw
|
||||
postgres:
|
||||
# В идеале должна быть ещё и версия image
|
||||
image: "postgres"
|
||||
ports:
|
||||
- "5432:5432"
|
||||
|
||||
@@ -1,66 +1,69 @@
|
||||
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.3.1.RELEASE</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>ru.otus.spring</groupId>
|
||||
<artifactId>docker-compose-example</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>docker-compose-example</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.5.1</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
<groupId>ru.otus.spring</groupId>
|
||||
<artifactId>docker-compose-example</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>docker-compose-example</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
</properties>
|
||||
<properties>
|
||||
<java.version>11</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<scope>test</scope>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<version>1.4.200</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.junit.vintage</groupId>
|
||||
<artifactId>junit-vintage-engine</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependency>
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<scope>test</scope>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.junit.vintage</groupId>
|
||||
<artifactId>junit-vintage-engine</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<finalName>docker-compose-example</finalName>
|
||||
</build>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
<finalName>docker-compose-example</finalName>
|
||||
</build>
|
||||
</project>
|
||||
|
||||
+2
-2
@@ -15,8 +15,8 @@ public class DockerComposeExampleApplication {
|
||||
//Код для примера, делать так конечно нельзя :)
|
||||
ApplicationContext context = SpringApplication.run(DockerComposeExampleApplication.class, args);
|
||||
PersonRepository repository = context.getBean(PersonRepository.class);
|
||||
repository.save(new Person(1, "Ivan", "Ivanov"));
|
||||
System.out.println(repository.findById(1));
|
||||
repository.save(new Person("Ivan", "Ivanov"));
|
||||
System.out.println(repository.findAll());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+9
@@ -5,6 +5,8 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
|
||||
@Data
|
||||
@@ -12,8 +14,15 @@ import javax.persistence.Id;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class Person {
|
||||
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
@Id
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String lastName;
|
||||
|
||||
public Person(String name, String lastName) {
|
||||
this.name = name;
|
||||
this.lastName = lastName;
|
||||
}
|
||||
}
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package ru.otus.spring.docker.rest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import ru.otus.spring.docker.model.Person;
|
||||
import ru.otus.spring.docker.repository.PersonRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class PersonController {
|
||||
|
||||
private final PersonRepository repository;
|
||||
|
||||
@GetMapping("/api/persons")
|
||||
public List<Person> getAllPersons() {
|
||||
return this.repository.findAll();
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: ${DB_DRIVER}
|
||||
url: ${DB_URL}
|
||||
username: ${DB_USERNAME}
|
||||
password: ${DB_PASSWORD}
|
||||
# Эти свойства будут перегружены свойствами в docker-compose.yml
|
||||
driver-class-name: org.postgresql.Driver
|
||||
url: jdbc:postgresql://localhost:5432/db
|
||||
username: postgre
|
||||
password: postgres
|
||||
jpa:
|
||||
generate-ddl: true
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Главная страницв</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Главная страница</h1>
|
||||
<p>Список всех лиц доступен по <a href="api/persons" target="_blank">ссылке</a>.</p>
|
||||
<p>Перезапустив приложение можно добавить ещё в БД.</p>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user