- [x] Liquibase database model - [x] JPA model - [x] API endpoint without implementation - [x] API endpoint requirements - [x] Json Serialization and Deserialization and dependencies - [x] New Authentication check interface to the core level - [x] CommandWrapperBuilder and dependencies
110 lines
4.1 KiB
Groovy
110 lines
4.1 KiB
Groovy
/**
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
description = 'Fineract Custom Docker Image'
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'com.google.cloud.tools.jib'
|
|
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"
|
|
|
|
jib {
|
|
from {
|
|
image = 'azul/zulu-openjdk-alpine:17'
|
|
}
|
|
|
|
to {
|
|
image = 'fineract-custom'
|
|
tags = [
|
|
"${project.version}",
|
|
'latest'
|
|
]
|
|
}
|
|
|
|
container {
|
|
creationTime = 'USE_CURRENT_TIMESTAMP'
|
|
mainClass = 'org.apache.fineract.ServerApplication'
|
|
jvmFlags = [
|
|
'-Xms1G',
|
|
'-XshowSettings:vm',
|
|
'-XX:+UseContainerSupport',
|
|
'-XX:+UseStringDeduplication',
|
|
'-XX:MinRAMPercentage=25',
|
|
'-XX:MaxRAMPercentage=80',
|
|
'--add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED',
|
|
'--add-opens=java.base/java.lang=ALL-UNNAMED',
|
|
'--add-opens=java.base/java.lang.invoke=ALL-UNNAMED',
|
|
'--add-opens=java.base/java.io=ALL-UNNAMED',
|
|
'--add-opens=java.base/java.security=ALL-UNNAMED',
|
|
'--add-opens=java.base/java.util=ALL-UNNAMED',
|
|
'--add-opens=java.management/javax.management=ALL-UNNAMED',
|
|
'--add-opens=java.naming/javax.naming=ALL-UNNAMED'
|
|
]
|
|
args = [
|
|
'-Duser.home=/tmp',
|
|
'-Dfile.encoding=UTF-8',
|
|
'-Duser.timezone=UTC',
|
|
'-Djava.security.egd=file:/dev/./urandom'
|
|
]
|
|
ports = ['8080/tcp', '8443/tcp']
|
|
labels = [maintainer: 'Aleksandar Vidakovic <aleks@apache.org>']
|
|
user = 'nobody:nogroup'
|
|
}
|
|
|
|
allowInsecureRegistries = true
|
|
|
|
dependencies {
|
|
implementation project(':fineract-core')
|
|
implementation project(':fineract-provider')
|
|
// NOTE: dynamically load all custom modules
|
|
file("${rootDir}/custom").eachDir { companyDir ->
|
|
if('build' != companyDir.name && 'docker' != companyDir.name) {
|
|
file("${rootDir}/custom/${companyDir.name}").eachDir { categoryDir ->
|
|
if('build' != categoryDir.name) {
|
|
file("${rootDir}/custom/${companyDir.name}/${categoryDir.name}").eachDir { moduleDir ->
|
|
if('build' != moduleDir.name) {
|
|
implementation project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// NOTE: other custom dependencies
|
|
implementation 'org.mariadb.jdbc:mariadb-java-client'
|
|
implementation 'mysql:mysql-connector-java:8.0.32'
|
|
implementation 'org.postgresql:postgresql'
|
|
annotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
|
|
annotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
|
|
}
|
|
|
|
pluginExtensions {
|
|
pluginExtension {
|
|
implementation = 'com.google.cloud.tools.jib.gradle.extension.layerfilter.JibLayerFilterExtension'
|
|
configuration {
|
|
filters {
|
|
filter {
|
|
glob = '/app/resources/**'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// tasks.jibDockerBuild.dependsOn(':fineract-provider:bootJar')
|