Merge pull request #7 from glours/update_spring_example
Update spring-postgresql example
This commit is contained in:
		
						commit
						0c6fcde001
					
				
					 10 changed files with 140 additions and 27 deletions
				
			
		|  | @ -1,12 +1,20 @@ | |||
| FROM maven:3.5-jdk-9 AS build | ||||
| COPY pom.xml . | ||||
| RUN mvn --batch-mode dependency:resolve | ||||
| COPY . . | ||||
| RUN mvn --batch-mode package | ||||
| RUN cp target/*jar target/app.jar | ||||
| FROM maven:3.6.3-jdk-11 AS builder | ||||
| WORKDIR /workdir/server | ||||
| COPY pom.xml /workdir/server/pom.xml | ||||
| RUN mvn dependency:go-offline | ||||
| 
 | ||||
| COPY src /workdir/server/src | ||||
| RUN mvn install | ||||
| RUN mkdir  -p target/depency | ||||
| WORKDIR /workdir/server/target/dependency | ||||
| RUN jar -xf ../*.jar | ||||
| 
 | ||||
| FROM openjdk:11-jre-slim | ||||
| 
 | ||||
| FROM openjdk:9-jre | ||||
| EXPOSE 8080 | ||||
| VOLUME /tmp | ||||
| COPY --from=build target/app.jar app.jar | ||||
| ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] | ||||
| ARG DEPENDENCY=/workdir/server/target/dependency | ||||
| COPY --from=builder ${DEPENDENCY}/BOOT-INF/lib /app/lib | ||||
| COPY --from=builder ${DEPENDENCY}/META-INF /app/META-INF | ||||
| COPY --from=builder ${DEPENDENCY}/BOOT-INF/classes /app | ||||
| ENTRYPOINT ["java","-cp","app:app/lib/*","com.company.project.Application"] | ||||
|  | @ -14,24 +14,37 @@ | |||
|     <parent> | ||||
|         <groupId>org.springframework.boot</groupId> | ||||
|         <artifactId>spring-boot-starter-parent</artifactId> | ||||
|         <version>2.0.3.RELEASE</version> | ||||
|         <version>2.2.5.RELEASE</version> | ||||
|         <relativePath/> | ||||
|     </parent> | ||||
| 
 | ||||
|     <properties> | ||||
|         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||||
|         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | ||||
|         <java.version>1.8</java.version> | ||||
|         <java.version>11</java.version> | ||||
|     </properties> | ||||
| 
 | ||||
|     <dependencies> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-web</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-freemarker</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-jersey</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-web</artifactId> | ||||
|             <artifactId>spring-boot-starter-data-jpa</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.postgresql</groupId> | ||||
|             <artifactId>postgresql</artifactId> | ||||
|             <scope>runtime</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.session</groupId> | ||||
|  | @ -40,26 +53,22 @@ | |||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-devtools</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-freemarker</artifactId> | ||||
|             <scope>runtime</scope> | ||||
|             <optional>true</optional> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.springframework.boot</groupId> | ||||
|             <artifactId>spring-boot-starter-test</artifactId> | ||||
|             <scope>test</scope> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>org.projectlombok</groupId> | ||||
|             <artifactId>lombok</artifactId> | ||||
|         </dependency> | ||||
|         <dependency> | ||||
|             <groupId>javax.xml.bind</groupId> | ||||
|             <artifactId>jaxb-api</artifactId> | ||||
|             <version>2.3.0</version> | ||||
|             <exclusions> | ||||
|                 <exclusion> | ||||
|                     <groupId>org.junit.vintage</groupId> | ||||
|                     <artifactId>junit-vintage-engine</artifactId> | ||||
|                 </exclusion> | ||||
|             </exclusions> | ||||
|         </dependency> | ||||
|     </dependencies> | ||||
| 
 | ||||
|     <build> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|  |  | |||
|  | @ -1,15 +1,22 @@ | |||
| package com.company.project.controllers; | ||||
| 
 | ||||
| import com.company.project.entity.Greeting; | ||||
| import com.company.project.repository.GreetingRepository; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Controller; | ||||
| import org.springframework.ui.Model; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | ||||
| import org.springframework.web.bind.annotation.RequestParam; | ||||
| 
 | ||||
| @Controller | ||||
| public class HomeController { | ||||
| 
 | ||||
|     @Autowired | ||||
|     private GreetingRepository repository; | ||||
| 
 | ||||
|     @GetMapping("/") | ||||
|     public String showHome(String name, Model model) { | ||||
|         Greeting dockerGreeting = repository.findById(1).orElse(new Greeting("Not Found 😕")); | ||||
|         model = model.addAttribute("name", dockerGreeting.getName()); | ||||
|         return "home"; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,57 @@ | |||
| package com.company.project.entity; | ||||
| 
 | ||||
| import javax.persistence.Entity; | ||||
| import javax.persistence.Id; | ||||
| import javax.persistence.Table; | ||||
| 
 | ||||
| @Entity | ||||
| @Table(name = "GREETINGS") | ||||
| public class Greeting { | ||||
| 
 | ||||
|     @Id | ||||
|     private int id; | ||||
|     private String name; | ||||
| 
 | ||||
|     public Greeting() { | ||||
|     } | ||||
| 
 | ||||
|     public Greeting(String name) { | ||||
|         this.name = name; | ||||
|     } | ||||
| 
 | ||||
|     public Greeting(int id, String name) { | ||||
|         this.id = id; | ||||
|         this.name = name; | ||||
|     } | ||||
| 
 | ||||
|     public int getId() { | ||||
|         return id; | ||||
|     } | ||||
| 
 | ||||
|     public void setId(int id) { | ||||
|         this.id = id; | ||||
|     } | ||||
| 
 | ||||
|     public String getName() { | ||||
|         return name; | ||||
|     } | ||||
| 
 | ||||
|     public void setName(String name) { | ||||
|         this.name = name; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object o) { | ||||
|         if (this == o) return true; | ||||
|         if (o == null || getClass() != o.getClass()) return false; | ||||
| 
 | ||||
|         Greeting greeting = (Greeting) o; | ||||
| 
 | ||||
|         return name.equals(greeting.name); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         return name.hashCode(); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,9 @@ | |||
| package com.company.project.repository; | ||||
| 
 | ||||
| import com.company.project.entity.Greeting; | ||||
| import org.springframework.data.repository.CrudRepository; | ||||
| import org.springframework.stereotype.Repository; | ||||
| 
 | ||||
| @Repository | ||||
| public interface GreetingRepository extends CrudRepository<Greeting, Integer> { | ||||
| } | ||||
|  | @ -1 +1,11 @@ | |||
| spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect | ||||
| spring.jpa.hibernate.ddl-auto=none | ||||
| spring.jpa.hibernate.show-sql=true | ||||
| 
 | ||||
| spring.datasource.url=jdbc:postgresql://db:5432/${POSTGRES_DB} | ||||
| spring.datasource.username=postgres | ||||
| spring.datasource.password=${POSTGRES_PASSWORD:db-wrz2z} | ||||
| spring.datasource.initialization-mode=always | ||||
| spring.datasource.initialize=true | ||||
| spring.datasource.schema=classpath:/schema.sql | ||||
| spring.datasource.continue-on-error=true | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| INSERT INTO GREETINGS(name) values ('Docker'); | ||||
|  | @ -0,0 +1,4 @@ | |||
| CREATE TABLE IF NOT EXISTS GREETINGS ( | ||||
|     id serial PRIMARY KEY, | ||||
|     name varchar(50) NOT NULL | ||||
| ); | ||||
|  | @ -5,5 +5,5 @@ | |||
|   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
| </head> | ||||
| <body> | ||||
| 	<p>Hello from Docker!</p> | ||||
| 	<p>Hello from ${name}!</p> | ||||
| </body> | ||||
|  | @ -4,6 +4,10 @@ services: | |||
|     build: backend | ||||
|     ports: | ||||
|     - 80:8080 | ||||
|     environment: | ||||
|       POSTGRES_DB: example | ||||
|     networks: | ||||
|       - spring-postges | ||||
|   db: | ||||
|     environment: | ||||
|       POSTGRES_DB: example | ||||
|  | @ -14,8 +18,12 @@ services: | |||
|     - db-password | ||||
|     volumes: | ||||
|     - db-data:/var/lib/postgresql/data | ||||
|     networks: | ||||
|       - spring-postges | ||||
| volumes: | ||||
|   db-data: {} | ||||
| secrets: | ||||
|   db-password: | ||||
|     file: db/password.txt | ||||
| networks: | ||||
|   spring-postges: {} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue