Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connecting external MySQL database #198

Open
ammxr opened this issue Jun 3, 2024 · 3 comments
Open

Connecting external MySQL database #198

ammxr opened this issue Jun 3, 2024 · 3 comments

Comments

@ammxr
Copy link

ammxr commented Jun 3, 2024

If I have a locally running instance of a MySQL database how can I connect it to Alfresco CE? I already have the default containerized MariaDB working fine with Alfresco though my concern is moreso connecting a separate non-containerized MySQL server.

Given that its a separate running instance I'd assume changing just the URL and the Driver variables within the docker-compose.yml and removing the mariadb container woud be enough.

No specific log files are generated though here is my terminal on attempt of execution:
docker_compose_up_terminal.txt

For reference here is also my docker-compose.yml. The URL/Driver within should be correct as it is directly copied off a different working ECM installation.

version: "2"

services:
    alfresco:
        build:
          context: ./alfresco
          args:
            ALFRESCO_TAG: ${ALFRESCO_CE_TAG}
            DB: mariadb
            SOLR_COMMS: secret 
        mem_limit: 7488m
        environment:
            JAVA_TOOL_OPTIONS: "
                -Dencryption.keystore.type=JCEKS
                -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
                -Dencryption.keyAlgorithm=DESede
                -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
                -Dmetadata-keystore.password=mp6yc0UD9e
                -Dmetadata-keystore.aliases=metadata
                -Dmetadata-keystore.metadata.password=oKIWzVdEdA
                -Dmetadata-keystore.metadata.algorithm=DESede
                "
            JAVA_OPTS : '
                -Ddb.username=alfresco
                -Ddb.password=alfresco 
                -Ddb.driver=com.mysql.cj.jdbc.Driver
                -Ddb.url=jdbc:mysql://127.0.0.1:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8 
                -Dalfresco_user_store.adminpassword=209c6174da490caeb422f3fa5a7ae634
                -Dsystem.preferred.password.encoding=bcrypt10
                -Dsolr.host=solr6
                -Dsolr.port=8983
                -Dsolr.port.ssl=8983
                -Dsolr.secureComms=secret
                -Dsolr.baseUrl=/solr
                -Dindex.subsystem.name=solr6
                -Dsolr.sharedSecret=robbbl08y0b  
                -Dalfresco.host=${SERVER_NAME}
                -Dalfresco.port=80
                -Dapi-explorer.url=http://${SERVER_NAME}:80/api-explorer
                -Dalfresco.protocol=http 
                -Dshare.host=${SERVER_NAME}
                -Dshare.port=80
                -Dshare.protocol=http 
                -Daos.baseUrlOverwrite=http://${SERVER_NAME}/alfresco/aos 
                -Dmessaging.subsystem.autoStart=false
                -Drepo.event2.enabled=false
                -Ddeployment.method=DOCKER_COMPOSE
                -Dcsrf.filter.enabled=false 
                -Dopencmis.server.override=true
                -Dopencmis.server.value=http://${SERVER_NAME}:80
                -DlocalTransform.core-aio.url=http://transform-core-aio:8090/
                -Dhttpclient.config.transform.connectionRequestTimeout=500000
                -Dcsrf.filter.enabled=false
                -Dalfresco.restApi.basicAuthScheme=true
                -Dauthentication.protection.enabled=false
                -XX:+UseG1GC -XX:+UseStringDeduplication
                -Dgoogledocs.enabled=false  
                -Ddev.email.not.sent=true  
                -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
            '
        volumes: 
            - ./data/alf-repo-data:/usr/local/tomcat/alf_data
            - ./logs/alfresco:/usr/local/tomcat/logs    
        

    transform-core-aio:
        image: alfresco/alfresco-transform-core-aio:${TRANSFORM_ENGINE_TAG}
        restart: on-failure
        mem_limit: 2048m
        environment:
            JAVA_OPTS: "
              -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
              -Dserver.tomcat.threads.max=12
              -Dserver.tomcat.threads.min=4
              -Dlogging.level.org.alfresco.transform.common.TransformerDebug=ERROR
              -Dlogging.level.org.alfresco.transform=ERROR
              -Dlogging.level.org.apache.fontbox.ttf=ERROR
              -Dlogging.level.org.apache.pdfbox.cos.COSDocument=ERROR
              -Dlogging.level.org.apache.pdfbox.pdfparser=ERROR
              -Dlogging.level.org.apache.pdfbox.filter.FlateFilter=ERROR
              -Dlogging.level.org.apache.pdfbox.pdmodel.font=ERROR
              -Dlogging.level.org.apache.pdfbox.pdmodel.font.PDSimpleFont=FATAL
              -Dlogging.level.org.apache.pdfbox.pdmodel.font.PDFont=FATAL
              -Dlogging.level.org.apache.pdfbox.pdmodel.font.PDCIDFont=FATAL
            "

    share:
        build:
          context: ./share
          args:
            SHARE_TAG: ${SHARE_TAG}
            SERVER_NAME: ${SERVER_NAME}
        mem_limit: 1872m
        environment:
            REPO_HOST: "alfresco"
            REPO_PORT: "8080"
            CSRF_FILTER_REFERER: "http://localhost:80/.*"
            CSRF_FILTER_ORIGIN: "http://localhost:80"
            JAVA_OPTS: "
                -Dalfresco.context=alfresco
                -Dalfresco.protocol=http
                -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
                "
        volumes: 
            - ./logs/share:/usr/local/tomcat/logs  

    solr6:
        build:
          context: ./search
          args:
            SEARCH_TAG: ${SEARCH_CE_TAG}
            SOLR_HOSTNAME: solr6
            ALFRESCO_HOSTNAME: alfresco
            ALFRESCO_COMMS: secret 
            CROSS_LOCALE: "true"
            DISABLE_CONTENT_INDEXING: "false"
        mem_limit: 3744m
        environment:
            SOLR_JAVA_MEM: "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"
            #Solr needs to know how to register itself with Alfresco
            SOLR_ALFRESCO_HOST: "alfresco"
            SOLR_ALFRESCO_PORT:  "8080" 
            #Alfresco needs to know how to call solr
            SOLR_SOLR_HOST: "solr6"
            SOLR_SOLR_PORT: "8983"
            #Create the default alfresco and archive cores
            SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" 
            SOLR_OPTS: "
                -XX:-UseLargePages
                -Dalfresco.secureComms.secret=robbbl08y0b 
            "
        volumes: 
            - ./data/solr-data:/opt/alfresco-search-services/data   
        

    

    content-app:
        image: alfresco/alfresco-content-app:${ACA_TAG}
        mem_limit: 256m
        environment:
            APP_BASE_SHARE_URL: "http://${SERVER_NAME}:80/#/preview/s"
        depends_on:
            - alfresco

    # HTTP proxy to provide HTTP Default port access to services
    # SOLR API and SOLR Web Console are protected to avoid unauthenticated access
    proxy:
        image: nginx:stable-alpine
        mem_limit: 128m
        depends_on:
            - alfresco
            - solr6
            - share
            - content-app
        volumes:
            - ./config/nginx.conf:/etc/nginx/nginx.conf
            - ./config/nginx.htpasswd:/etc/nginx/conf.d/nginx.htpasswd 
        ports:
            - 80:80

Would appreciate any help!

@aborroy
Copy link
Contributor

aborroy commented Jun 4, 2024

This line is wrong:

-Ddb.url=jdbc:mysql://127.0.0.1:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8 

Inside a Docker container, 127.0.0.1 refers specifically to the container's own loopback interface, not the host machine's localhost. This means that when your alfresco container tries to connect to 127.0.0.1:3306, it's attempting to connect to a service running on the same network as the container itself, not the database service on the host machine.

Use your host machine local ip instead of 127.0.0.1

@ammxr
Copy link
Author

ammxr commented Jun 4, 2024

Thanks! Yeah I was testing that internally on the same machine though I now have it available to connect from any IP and have tested it on another machine as well. In terms of Alfresco however, I am getting the same output in the console after your corrections/updates to the DB connection:

            JAVA_OPTS : '
                -Ddb.username=alfresco2
                -Ddb.password=alfresco2
                -Ddb.driver=com.mysql.cj.jdbc.Driver
                -Ddb.url=jdbc:mysql://10.0.0.39:3306/alfresco?useUnicode=yes&characterEncoding=UTF-8

Also the SOLR issues remain as well even when using the default containerized MariaDB Alfresco is running just fine (Error still exists but everything seemingly functions fine) so I don't think thats an issue related to the DB not working.

Here is the full updated terminal + docker-compose.yml
docker_compose_up_terminal.txt
docker-compose.txt

And still no logs are generated

@aborroy
Copy link
Contributor

aborroy commented Jun 5, 2024

If you are using Windows/Linux as host for Docker, review volumes recommendations in https://github.com/Alfresco/alfresco-docker-installer?tab=readme-ov-file#docker-volumes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants