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