From e12de1c1d37d49a53d2dfb3bbdf724e3167b6bd8 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Tue, 9 Jun 2020 18:12:27 +0300 Subject: [PATCH 01/10] Configure jib plugin. --- .travis.yml | 5 ----- Dockerfile | 4 ---- build.gradle | 25 +++++++++++++++++++++++-- src/main/resources/application.yaml | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) delete mode 100644 Dockerfile diff --git a/.travis.yml b/.travis.yml index 51c4d32..8b7be16 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,11 +17,6 @@ script: - ./gradlew build --stacktrace - ./gradlew sonarqube --stacktrace -after_success: - - docker build -t speech4j/tenant-service -f Dockerfile . - - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin - - docker push speech4j/tenant-service - cache: directories: - '$HOME/.m2/repository' diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6903960..0000000 --- a/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM openjdk:11 - -ARG JAR_FILE=build/libs/*.jar -COPY ${JAR_FILE} app.jar diff --git a/build.gradle b/build.gradle index b88a6ca..d935b30 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,7 @@ plugins { id 'org.springframework.boot' version '2.2.6.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id "org.liquibase.gradle" version "2.0.2" + id 'com.google.cloud.tools.jib' version '2.3.0' } group = 'com.speech4j' @@ -81,11 +82,31 @@ jacocoTestReport { csv.enabled false } } - project.tasks["sonarqube"].dependsOn "jacocoTestReport" -//===Liquibase configurations=== +jib { + from { + image = 'openjdk:11' + } + to { + image = "speech4j/${name}" + auth { + username = System.getenv('DOCKER_ID') + password = System.getenv('DOCKER_PASSWORD') + } + } + container { + ports = ['8082'] + volumes = ["/tmp"] + } +} +tasks.build.dependsOn tasks.jib + + +/* +*===Liquibase configurations=== +*/ Properties properties = new Properties() Properties metadata = new Properties() metadata.load(new FileInputStream("src/main/resources/liquibase-metadata.properties")) diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index e5d0aa0..526db8f 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -22,7 +22,7 @@ db: spring: datasource: driver: org.postgresql.Driver - url: jdbc:postgresql://${db.host}:${db.port}/${db.name} + url: ${DB_URL:jdbc:postgresql://${db.host}:${db.port}/${db.name}} username: ${DB_USERNAME:postgres} password: ${DB_PASSWORD:postgres} liquibase: From b400cdbec3d327d04bc2b998235f90323b24dce2 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Tue, 9 Jun 2020 18:23:59 +0300 Subject: [PATCH 02/10] Configure docker-compose.yml --- docker-compose.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index ca7ad68..ac7fa45 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,14 @@ services: image: openjdk:11 ports: - "8082:8080" + environment: + - DB_URL=jdbc:postgresql://db:5432/tenant_db + - DB_PASSWORD=postgres + - DB_USER=postgres + - AWS_SECRET_KEY=${AWS_SECRET_KEY} + - AWS_ACCESS_KEY=${AWS_ACCESS_KEY} + - AWS_BUCKET_NAME=${AWS_BUCKET_NAME} + - AWS_ENDPOINT_URL=${AWS_ENDPOINT_URL} volumes: - ./build/libs:/tenant-service command: ["java", "--enable-preview", "-jar", "/tenant-service/tenant-service-0.0.1-SNAPSHOT.jar"] From e1fbf4958cda236442266914bb7f46066319c924 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Tue, 9 Jun 2020 19:08:57 +0300 Subject: [PATCH 03/10] Add tags and jvm arguments. --- build.gradle | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index d935b30..3d4e72d 100644 --- a/build.gradle +++ b/build.gradle @@ -91,12 +91,14 @@ jib { } to { image = "speech4j/${name}" + tags = ['1.0.0', 'latest'] auth { username = System.getenv('DOCKER_ID') password = System.getenv('DOCKER_PASSWORD') } } container { + jvmFlags = ['--enable-preview', '-jar'] ports = ['8082'] volumes = ["/tmp"] } @@ -149,10 +151,10 @@ liquibase { } } -tasks.withType(JavaCompile).each { - it.options.compilerArgs.add('--enable-preview') -} - -test { - jvmArgs(['--enable-preview']) -} \ No newline at end of file +//tasks.withType(JavaCompile).each { +// it.options.compilerArgs.add('--enable-preview') +//} +// +//test { +// jvmArgs(['--enable-preview']) +//} \ No newline at end of file From 9a75b43a45c0b6cf07a47ab631907de43bf72cdf Mon Sep 17 00:00:00 2001 From: MarrMika Date: Wed, 10 Jun 2020 16:04:08 +0300 Subject: [PATCH 04/10] Add spring boot actuator for healthcheck. --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 3d4e72d..8a35dec 100644 --- a/build.gradle +++ b/build.gradle @@ -44,6 +44,7 @@ dependencies { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.projectlombok:lombok' annotationProcessor "org.projectlombok:lombok" implementation 'org.springframework.security:spring-security-crypto' From 26d23eebab679025adeec7a1884593e05b541de3 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Wed, 10 Jun 2020 17:17:16 +0300 Subject: [PATCH 05/10] Fix jvm flags. --- README.md | 2 +- build.gradle | 2 +- src/main/resources/application.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f6929f3..38b4bc9 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ docker run --name postgres-docker \ -e POSTGRES_PASSWORD=postgres \ -e POSTGRES_USERNAME=postgres \ -e POSTGRES_DB=tenant_db \ - -p 5432:5432 -d postgres + -p 5432:5432 -d tenant_db ``` ## Running DB Migration diff --git a/build.gradle b/build.gradle index 8a35dec..915759d 100644 --- a/build.gradle +++ b/build.gradle @@ -99,7 +99,7 @@ jib { } } container { - jvmFlags = ['--enable-preview', '-jar'] + jvmFlags = ['--enable-preview'] ports = ['8082'] volumes = ["/tmp"] } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 526db8f..a3cb1d1 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -61,8 +61,8 @@ liquibase: general_changelog: db/changelog/db.changelog-tenant.yaml metadata_changelog: db/changelog/db.changelog-master.yaml -server: - port: 8082 +#server: +# port: 8082 # =============================== # TENANT/SPEECH4J # =============================== From 87ff905bb31d37d489dbf00ddb18273d632fa882 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Wed, 10 Jun 2020 17:27:57 +0300 Subject: [PATCH 06/10] Bump jib from 2.3.0 to 2.4.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 915759d..f324290 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'org.springframework.boot' version '2.2.6.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id "org.liquibase.gradle" version "2.0.2" - id 'com.google.cloud.tools.jib' version '2.3.0' + id 'com.google.cloud.tools.jib' version '2.4.0' } group = 'com.speech4j' From 81376115fffc43ede85b5af26a15ffdcda0cfb1c Mon Sep 17 00:00:00 2001 From: MarrMika Date: Wed, 10 Jun 2020 19:22:43 +0300 Subject: [PATCH 07/10] Delete port in jib. Specidy it in docker-compose.yml --- build.gradle | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index f324290..d59c2c2 100644 --- a/build.gradle +++ b/build.gradle @@ -100,7 +100,6 @@ jib { } container { jvmFlags = ['--enable-preview'] - ports = ['8082'] volumes = ["/tmp"] } } @@ -152,10 +151,10 @@ liquibase { } } -//tasks.withType(JavaCompile).each { -// it.options.compilerArgs.add('--enable-preview') -//} -// -//test { -// jvmArgs(['--enable-preview']) -//} \ No newline at end of file +tasks.withType(JavaCompile).each { + it.options.compilerArgs.add('--enable-preview') +} + +test { + jvmArgs(['--enable-preview']) +} \ No newline at end of file From 7d41398f221b8c349a9c819507c9f69d7aa471c5 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Thu, 11 Jun 2020 16:11:15 +0300 Subject: [PATCH 08/10] Add server port --- src/main/resources/application.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index a3cb1d1..526db8f 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -61,8 +61,8 @@ liquibase: general_changelog: db/changelog/db.changelog-tenant.yaml metadata_changelog: db/changelog/db.changelog-master.yaml -#server: -# port: 8082 +server: + port: 8082 # =============================== # TENANT/SPEECH4J # =============================== From 27b5ed2de4bcac4b17aef053978d6dafb7e83519 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Mon, 15 Jun 2020 13:19:19 +0300 Subject: [PATCH 09/10] Added descriptions to dependencies in build.gradle file. --- build.gradle | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index d59c2c2..aec75f5 100644 --- a/build.gradle +++ b/build.gradle @@ -39,28 +39,34 @@ diffChangeLog { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' - runtimeOnly 'org.postgresql:postgresql' - testImplementation('org.springframework.boot:spring-boot-starter-test') { - exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' - } +//JPA dependency for reducing of the boilerplate and making of the implementation of your persistence layer easier and faster. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-actuator' - implementation 'org.projectlombok:lombok' - annotationProcessor "org.projectlombok:lombok" +//Spring-security-crypto dependency for encode passwords implementation 'org.springframework.security:spring-security-crypto' +//Swagger dependency implementation 'org.springdoc:springdoc-openapi-ui:1.3.0' - implementation 'org.liquibase:liquibase-core:3.8.9' +//Postgres dependency + runtimeOnly 'org.postgresql:postgresql' +//Json dependency for transferring credentials to db implementation 'org.json:json:20190722' - +//Lombok dependencies + implementation 'org.projectlombok:lombok' + annotationProcessor "org.projectlombok:lombok" +//Liquibase dependencies + implementation 'org.liquibase:liquibase-core:3.8.9' + liquibaseRuntime 'org.liquibase.ext:liquibase-hibernate5:3.8' + liquibaseRuntime sourceSets.main.runtimeClasspath +//Testing dependencies testImplementation 'org.junit.jupiter:junit-jupiter-api' testImplementation 'org.junit.jupiter:junit-jupiter-params' testImplementation 'org.testcontainers:testcontainers' testImplementation 'org.testcontainers:junit-jupiter' testImplementation 'org.testcontainers:postgresql' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testImplementation('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + } - liquibaseRuntime 'org.liquibase.ext:liquibase-hibernate5:3.8' - liquibaseRuntime sourceSets.main.runtimeClasspath } test { From 2f0930f7e933483d3cbc2ad5bd49ecd16b4abef3 Mon Sep 17 00:00:00 2001 From: MarrMika Date: Wed, 2 Sep 2020 09:25:03 +0300 Subject: [PATCH 10/10] Bump 'com.google.cloud.tools.jib' from 2.4.0 to 2.5.0 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index aec75f5..e3a5a51 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { id 'org.springframework.boot' version '2.2.6.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id "org.liquibase.gradle" version "2.0.2" - id 'com.google.cloud.tools.jib' version '2.4.0' + id 'com.google.cloud.tools.jib' version '2.5.0' } group = 'com.speech4j'