最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

docker - Couldn't complete setup mifos 18 setup on Ubuntu 20.04 server due to 404 error from fineract - Stack Overflow

programmeradmin3浏览0评论

I try to setup mifos 18 on ubuntu 20.04 server.

Everything seems to be setup fine. But, I couldn't connect the app with backend. App receives 404 while it is trying to access https://ip:8443/fineract-provider/api/v1/authentication?username=mifos&password=password

Even, https://ip:8443/fineract-provider/ returns 404

I tried to check the followings:

  • fineract-provider.war is deployed properly and I can see fineract-provider inside tomcat's webapps dir
  • community app is running without any errors on https://ip:8443/
  • db is up and running
  • no logs in docker log or catalina logs

The prequisities

  • Oracle Java - JDK 8 (.html)
  • MySQL server - 5.5 or 5.6 (.5.html#downloads/)
  • Apache Tomcat - 7.0.68 (.cgi)

Based on this and other steps mentioned in setup, I created following docker images and docker-compose files

mifos/Dockerfile

FROM tomcat:jre8

ADD ./server.xml /usr/local/tomcat/conf/server.xml

ADD ./fineract-provider.war /usr/local/tomcat/webapps/fineract-provider.war

ADD ./entrypoint.sh /entrypoint.sh

RUN chmod +x /entrypoint.sh

RUN apt-get update \
    && apt-get install -y mysql-client \
    && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN mkdir -p /run/mysqld \
    && chown 999 /run/mysqld

# Install unzip and wget
RUN apt-get update && apt-get install -y unzip wget

# Ensure the file is available in the build context
COPY mifosplatform-18.03.01.RELEASE.zip /app/mifosplatform-18.03.01.RELEASE.zip
COPY drizzle-jdbc-1.4.jar /app/drizzle-jdbc-1.4.jar

# Extract the Mifos platform, move necessary files, and clean up
RUN mkdir -p /app /docker-entrypoint-initdb.d /root/.mifosx \
    && cd /app \
    && unzip mifosplatform-18.03.01.RELEASE.zip -d /app \
    && mv /app/fineractplatform-18.03.01.RELEASE/apps/community-app /usr/local/tomcat/webapps/ \
    && mv /app/fineractplatform-18.03.01.RELEASE/pentahoReports /root/.mifosx \
    && mv /app/drizzle-jdbc-1.4.jar /usr/local/tomcat/lib/ \
    && cd / \
    && rm -rf /app

VOLUME /docker-entrypoint-initdb.d

ENTRYPOINT /entrypoint.sh

mifos/entrypoint.sh

#!/bin/bash

keytool -genkey -noprompt -storepass ****** -keypass ****** -keyalg RSA -alias tomcat -dname "CN=tomcat" -keystore /usr/share/tomcat.keystore

while ! mysqladmin --user=root --password=******** ping -h "db-server" --silent; do
    sleep 2
    echo "Waiting database..."
done

catalina.sh run

mariadb/Dockerfile

FROM mariadb:10

RUN apt-get update \
    && apt-get install -y wget unzip \
    && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN mkdir -p /docker-entrypoint-initdb.d    && cd / 

ADD ./00-create-databases.sql /docker-entrypoint-initdb.d/00-create-databases.sql

ADD ./01-mifospltaform-tenants-first-time-install.sql /docker-entrypoint-initdb.d/01-mifospltaform-tenants-first-time-install.sql

ADD ./02-load_sample_data.sql /docker-entrypoint-initdb.d/02-load_sample_data.sql

VOLUME /docker-entrypoint-initdb.d

docker-compse.yml

services:
  db-server:
    build:
      context: ./mariadb
      dockerfile: Dockerfile
    image: mifos-mariadb:18.03.01
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ******
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - mifos-network

  mifosx:
    build:
      context: ./mifos
      dockerfile: Dockerfile
    image: mifos-app:18.03.01
    restart: always
    depends_on:
      - db-server
    ports:
      - "8443:8443"
    networks:
      - mifos-network

volumes:
  db-data:

networks:
  mifos-network:

server.xml

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
    <Listener className=".apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
    <Listener className=".apache.catalina.core.JreMemoryLeakPreventionListener" />
    <Listener className=".apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
    <Listener className=".apache.catalina.core.ThreadLocalLeakPreventionListener" />
    
    <GlobalNamingResources>
        <Resource name="UserDatabase" 
                  auth="Container"
                  type=".apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory=".apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
        
        <!-- Data Source for JDBC Connection -->
        <Resource type="javax.sql.DataSource"
                  name="jdbc/mifosplatform-tenants"
                  factory=".apache.tomcat.jdbc.pool.DataSourceFactory"
                  driverClassName=".drizzle.jdbc.DrizzleDriver"
                  url="jdbc:mysql:thin://db-server:3306/mifosplatform-tenants"
                  username="root"
                  password="*******"
                  initialSize="3"
                  maxActive="10"
                  maxIdle="6"
                  minIdle="3"
                  validationQuery="SELECT 1"
                  testOnBorrow="true"
                  testOnReturn="true"
                  testWhileIdle="true"
                  timeBetweenEvictionRunsMillis="30000"
                  minEvictableIdleTimeMillis="60000"
                  logAbandoned="true"
                  suspectTimeout="60"
                  />
    </GlobalNamingResources>
    
    <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1" 
            connectionTimeout="20000" 
            redirectPort="8443" />

        <!-- SSL Connector using JSSE -->
        <Connector port="8443" protocol=".apache.coyote.http11.Http11NioProtocol"
            maxThreads="200" SSLEnabled="true">
            <SSLHostConfig>
                <Certificate certificateKeystoreFile="/usr/share/tomcat.keystore"
                    type="RSA" certificateKeystorePassword="******" />
            </SSLHostConfig>
        </Connector>

        <Engine name="Catalina" defaultHost="localhost">
            <Realm className=".apache.catalina.realm.LockOutRealm">
                <Realm className=".apache.catalina.realm.UserDatabaseRealm"
                    resourceName="UserDatabase" />
            </Realm>
            
            <Host name="localhost" appBase="webapps"
                unpackWARs="true" autoDeploy="true">

                <!-- Fineract Context Configuration -->
                <!-- <Context path="/fineract-provider" docBase="fineract-provider" /> -->

                <Valve className=".apache.catalina.valves.AccessLogValve" directory="logs"
                    prefix="localhost_access_log" suffix=".txt"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
        </Engine>
    </Service>
</Server>

mifos-container log


Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /usr/share/tomcat.keystore -destkeystore /usr/share/tomcat.keystore -deststoretype pkcs12".
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Waiting database...
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Waiting database...
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqld is alive
15-Mar-2025 13:36:04.431 INFO [main] .apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.35] using APR version [1.7.0].
15-Mar-2025 13:36:04.432 INFO [main] .apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
15-Mar-2025 13:36:04.436 INFO [main] .apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.2 15 Mar 2022]
15-Mar-2025 13:36:05.108 INFO [main] .apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
15-Mar-2025 13:36:05.141 INFO [main] .apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio-8443"]
15-Mar-2025 13:36:05.241 INFO [main] .apache.catalina.startup.Catalina.load Server initialization in [1023] milliseconds
15-Mar-2025 13:36:05.408 INFO [main] .apache.catalina.core.StandardService.startInternal Starting service [Catalina]
15-Mar-2025 13:36:05.408 INFO [main] .apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.23]
15-Mar-2025 13:36:05.429 INFO [main] .apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/fineract-provider.war]
15-Mar-2025 13:36:17.389 INFO [main] .apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Mar-2025 13:36:17.405 INFO [main] .apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/fineract-provider.war] has finished in [11,975] ms
15-Mar-2025 13:36:17.405 INFO [main] .apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/community-app]
15-Mar-2025 13:36:17.418 INFO [main] .apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Mar-2025 13:36:17.419 INFO [main] .apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/community-app] has finished in [14] ms
15-Mar-2025 13:36:17.421 INFO [main] .apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-Mar-2025 13:36:17.447 INFO [main] .apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-openssl-nio-8443"]
15-Mar-2025 13:36:17.449 INFO [main] .apache.catalina.startup.Catalina.start Server startup in [12208] milliseconds

catalina.2025-03-15.log

root@server:/usr/local/tomcat# cat logs/catalina.2025-03-15.log
15-Mar-2025 13:36:04.431 INFO [main] .apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.35] using APR version [1.7.0].
15-Mar-2025 13:36:04.432 INFO [main] .apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
15-Mar-2025 13:36:04.436 INFO [main] .apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.2 15 Mar 2022]
15-Mar-2025 13:36:05.108 INFO [main] .apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
15-Mar-2025 13:36:05.141 INFO [main] .apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio-8443"]
15-Mar-2025 13:36:05.241 INFO [main] .apache.catalina.startup.Catalina.load Server initialization in [1023] milliseconds
15-Mar-2025 13:36:05.408 INFO [main] .apache.catalina.core.StandardService.startInternal Starting service [Catalina]
15-Mar-2025 13:36:05.408 INFO [main] .apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.23]
15-Mar-2025 13:36:05.429 INFO [main] .apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/fineract-provider.war]
15-Mar-2025 13:36:17.389 INFO [main] .apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Mar-2025 13:36:17.405 INFO [main] .apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/fineract-provider.war] has finished in [11,975] ms
15-Mar-2025 13:36:17.405 INFO [main] .apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/community-app]
15-Mar-2025 13:36:17.418 INFO [main] .apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
15-Mar-2025 13:36:17.419 INFO [main] .apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/community-app] has finished in [14] ms
15-Mar-2025 13:36:17.421 INFO [main] .apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
15-Mar-2025 13:36:17.447 INFO [main] .apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-openssl-nio-8443"]
15-Mar-2025 13:36:17.449 INFO [main] .apache.catalina.startup.Catalina.start Server startup in [12208] milliseconds

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论