From 562232af8eba7b7d672de60da0eee14c20d9daec Mon Sep 17 00:00:00 2001
From: "hilmi.albiruni" <hilmi.albiruni@ui.ac.id>
Date: Wed, 9 Nov 2022 18:21:08 +0700
Subject: [PATCH] Menyelesaikan tahap docker local

---
 Dockerfile                                    |  5 +++
 app.env                                       |  6 +++
 .../security/WebSecurityConfig.java           |  8 ++--
 .../src/main/resources/application-dev.yml    | 34 +++++++++++++++++
 .../src/main/resources/application-prod.yml   | 26 +++++++++++++
 .../src/main/resources/application.properties | 21 ----------
 .../src/main/resources/application.yml        |  5 +++
 docker-compose.yml                            | 38 +++++++++++++++++++
 8 files changed, 117 insertions(+), 26 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 app.env
 create mode 100644 belajarbelajar/src/main/resources/application-dev.yml
 create mode 100644 belajarbelajar/src/main/resources/application-prod.yml
 delete mode 100644 belajarbelajar/src/main/resources/application.properties
 create mode 100644 belajarbelajar/src/main/resources/application.yml
 create mode 100644 docker-compose.yml

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..3aeceaf
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,5 @@
+FROM openjdk:17-alpine
+ARG JAR_FILE=belajarbelajar/build/libs/belajarbelajar-0.0.1-SNAPSHOT.jar
+COPY ${JAR_FILE} app.jar
+EXPOSE 9099
+ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/app.env b/app.env
new file mode 100644
index 0000000..89bfe2d
--- /dev/null
+++ b/app.env
@@ -0,0 +1,6 @@
+SPRING_PROFILES_ACTIVE=prod
+
+MYSQL_ROOT_PASSWORD=password123456!
+MYSQL_DATABASE=apap_db
+MYSQL_USER=apap_user
+MYSQL_PASSWORD=password1234!
\ No newline at end of file
diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java
index f3446ec..651a570 100644
--- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java
+++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java
@@ -37,10 +37,8 @@ public class WebSecurityConfig {
         return http.build();
     }
 
-    @Bean
-    public BCryptPasswordEncoder encoder() {
-        return new BCryptPasswordEncoder();
-    }
+//    @Bean
+    public BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
 
 //    @Autowired
 //    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
@@ -56,6 +54,6 @@ public class WebSecurityConfig {
 
     @Autowired
     public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
-        auth.userDetailsService(userDetailsService).passwordEncoder(encoder());
+        auth.userDetailsService(userDetailsService).passwordEncoder(encoder);
     }
 }
\ No newline at end of file
diff --git a/belajarbelajar/src/main/resources/application-dev.yml b/belajarbelajar/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..bb17027
--- /dev/null
+++ b/belajarbelajar/src/main/resources/application-dev.yml
@@ -0,0 +1,34 @@
+spring:
+
+  # konfigurasi untuk koneksi db
+  datasource:
+    driver-class-name: com.mysql.jdbc.Driver
+
+    # sesuaikan nama database anda dengan di bawah ini
+    url: jdbc:mysql://localhost:3306/apap_db?useSSL=false&serverTimezone=Asia/Jakarta
+
+    # sesuaikan dengan NAMA dan PASSWORD anda dengan username password di bawah ini
+    username: apap_user
+    password: password1234!
+
+  jpa:
+    properties:
+      hibernate:
+        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+        format_sql: true
+
+    # pembuatan database (create || create-drop || validate || update)
+    hibernate.ddl-auto: create-drop
+
+    show-sql: true
+
+
+  # Templates reloading during development
+  thymeleaf:
+    prefix: file:src/main/resources/templates/
+    cache: false
+
+  # Static resources reloading during development
+  web:
+    resources:
+      static-locations: file:src/main/resources/static/
diff --git a/belajarbelajar/src/main/resources/application-prod.yml b/belajarbelajar/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..567c15d
--- /dev/null
+++ b/belajarbelajar/src/main/resources/application-prod.yml
@@ -0,0 +1,26 @@
+server:
+  address: 0.0.0.0
+  port: 8080
+
+spring:
+  # konfigurasi untuk koneksi db
+  datasource:
+    driver-class-name: com.mysql.jdbc.Driver
+
+    # sesuaikan nama database anda dengan di bawah ini
+    url: jdbc:mysql://db:3306/apap_db?useSSL=false&serverTimezone=Asia/Jakarta
+
+    # sesuaikan dengan NAMA dan PASSWORD anda dengan username password di bawah ini
+    username: apap_user
+    password: password1234!
+
+  jpa:
+    properties:
+      hibernate:
+        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+        format_sql: true
+
+    # pembuatan database (create || create-drop || validate || update)
+    hibernate.ddl-auto: create-drop
+
+    show-sql: true
diff --git a/belajarbelajar/src/main/resources/application.properties b/belajarbelajar/src/main/resources/application.properties
deleted file mode 100644
index ae57aa1..0000000
--- a/belajarbelajar/src/main/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#konfigurasi untuk koneksi MySQL
-spring.sql.init.platform=mysql
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-
-#sesuaikan NAMA_DATABASE dengan nama database anda
-spring.datasource.url=jdbc:mysql://localhost:3306/belajarbelajar?useSSL=false&serverTimezone=Asia/Jakarta
-
-#sesuaikan dengan NAMA dan PASSWORD mysql anda
-spring.datasource.username=root
-spring.datasource.password=
-
-#error bean
-spring.main.allow-circular-references=true
-
-#optimize query untuk db MySQL
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
-
-#pembuatan database (create || create drop || validate || update)
-spring.jpa.hibernate.ddl-auto=update
-
-server.port=8080
diff --git a/belajarbelajar/src/main/resources/application.yml b/belajarbelajar/src/main/resources/application.yml
new file mode 100644
index 0000000..e33662a
--- /dev/null
+++ b/belajarbelajar/src/main/resources/application.yml
@@ -0,0 +1,5 @@
+
+
+spring:
+  profiles:
+    default: dev
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..d03ed72
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,38 @@
+version: '2'
+services:
+  web:
+    build:
+      context: .
+    restart: always
+    ports:
+      - "10127:8080"
+    volumes:
+      - ./file-storage:/file-storage
+      - ./log:/log
+    env_file:
+      - app.env
+    depends_on:
+      - db
+    networks:
+      - frontend-network
+      - backend-network
+
+  db:
+    image: mariadb:10.4.24
+    restart: always
+    env_file:
+      - app.env
+    volumes:
+      - mysql-db-volume:/var/lib/mysql
+    networks:
+      - backend-network
+
+volumes:
+  mysql-db-volume:
+
+networks:
+  frontend-network:
+    driver: bridge
+  backend-network:
+
+
-- 
GitLab