Alfresco / alfresco-docker-installer

Generator to build Docker Compose templates to deploy Alfresco Community
Other
140 stars 57 forks source link

FTP Error #186

Closed N00BTellaBrot closed 7 months ago

N00BTellaBrot commented 7 months ago

Hello.

When I want to connect via FTP following error occurs:

2024-01-10T15:07:08,932 [] ERROR [org.alfresco.fileserver] [Sess_FTP11_10.0.1.157] Error from JLAN
java.io.IOException: No free data session ports
        at org.alfresco.jlan.ftp.FTPServer.allocateDataSession(FTPServer.java:247) ~[alfresco-jlan-embed-7.5.jar:7.5]
        at org.alfresco.jlan.ftp.FTPSrvSession.procPort(FTPSrvSession.java:1088) ~[alfresco-jlan-embed-7.5.jar:7.5]
        at org.alfresco.jlan.ftp.FTPSrvSession.run(FTPSrvSession.java:5092) [alfresco-jlan-embed-7.5.jar:7.5]
        at java.lang.Thread.run(Thread.java:833) [?:?]
2024-01-10T15:07:09,933 [] ERROR [org.alfresco.fileserver] [Sess_FTP12_10.0.1.157] Error from JLAN
java.io.IOException: No free data session ports
        at org.alfresco.jlan.ftp.FTPServer.allocateDataSession(FTPServer.java:247) ~[alfresco-jlan-embed-7.5.jar:7.5]
        at org.alfresco.jlan.ftp.FTPSrvSession.procPort(FTPSrvSession.java:1088) ~[alfresco-jlan-embed-7.5.jar:7.5]
        at org.alfresco.jlan.ftp.FTPSrvSession.run(FTPSrvSession.java:5092) [alfresco-jlan-embed-7.5.jar:7.5]
        at java.lang.Thread.run(Thread.java:833) [?:?]

Here is my Docker Compose File:

# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"

services:
    alfresco:
        build:
          context: ./alfresco
          args:
            ALFRESCO_TAG: ${ALFRESCO_CE_TAG}
            DB: postgres
            SOLR_COMMS: secret
        mem_limit: 7488m
        depends_on:
            - postgres
        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=org.postgresql.Driver
                -Ddb.url=jdbc:postgresql://postgres:5432/alfresco
                -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=jy9gvvu769c
                -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
                -Dftp.enabled=true
                -Dftp.port=2121
                -Dftp.dataPortFrom=2433
                -Dftp.dataPortTo=2434
                -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
                -DlocalTransform.ocr.url=http://transform-ocr:8090/
                -Dhttpclient.config.transform.socketTimeout=500000
                -Dhttpclient.config.transform.connectionTimeout=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:
            - alf-repo-data:/usr/local/tomcat/alf_data
            - alf-repo-logs:/usr/local/tomcat/logs

        ports:
            - 2121:2121
            - 2433:2433
            - 2434:2434

    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://10.0.1.160:80/.*"
            CSRF_FILTER_ORIGIN: "http://10.0.1.160:80"
            JAVA_OPTS: "
                -Dalfresco.context=alfresco
                -Dalfresco.protocol=http
                -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
                "
        volumes:
            - alf-share-logs:/usr/local/tomcat/logs

    postgres:
        image: postgres:${POSTGRES_TAG}
        mem_limit: 1872m
        environment:
            - POSTGRES_PASSWORD=alfresco
            - POSTGRES_USER=alfresco
            - POSTGRES_DB=alfresco
        command: "
            postgres
              -c max_connections=200
              -c logging_collector=on
              -c log_min_messages=LOG
              -c log_directory=/var/log/postgresql"
        ports:
            - 5432:5432
        volumes:
            - postgres-data:/var/lib/postgresql/data
            - postgres-logs:/var/log/postgresql

    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=jy9gvvu769c
            "
        volumes:
            - 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

    transform-ocr:
        image: angelborroy/alfresco-tengine-ocr:1.0.0
        mem_limit: 1536m
        environment:
          OCRMYPDF_ARGUMENTS: "--rotate-pages --rotate-pages-threshold 8"
          JAVA_OPTS: "
              -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
              -Dserver.tomcat.threads.max=4
              -Dserver.tomcat.threads.min=1
            "

volumes:
    alf-repo-data:
    activemq-data:
    alf-repo-logs:
    alf-share-logs:
    postgres-data:
    postgres-logs:
    solr-data:

System Infos: OS: Rocky 9 Docker Version: 24.0.7 Docker Compose Version: v2.21.0

aborroy commented 7 months ago

I made a simple test from command line and it seems to be working fine.

~ $ ftp -p localhost 2121
Connected to localhost.
220 FTP server ready
Name (localhost:angel.fernandoborroy): admin
331 User name okay, need password for admin
Password:
230 User logged in, proceed
ftp> ls
229 Entering Extended Passive Mode (|||2434|)
150 File status okay, about to open data connection
drw-rw-rw-   1 user group 0 Jan  1  1970 Alfresco
226 Closing data connection
ftp>

Are you using passive mode? What FTP Client are you using?

N00BTellaBrot commented 7 months ago

I use FileZilla. I also tried WinSCP, but then there is no entry in the log but this error:

image

Where do I see which mode I use?

Here is my result:

# ftp -p localhost 2121
Trying ::1...
Connected to localhost (::1).
220 FTP server ready
Name (localhost:root): admin
331 User name okay, need password for admin
Password:
230 User logged in, proceed
Remote system type is UNIX.
ftp> ls
550 Requested action not taken
502 Command not implemented
Passive mode refused.
ftp>
aborroy commented 7 months ago

May you add your local .env file to this issue in addition to docker-compose.yml?

N00BTellaBrot commented 7 months ago

Sure

.env:

# Docker Image versions
ALFRESCO_CE_TAG=23.1.0
SEARCH_CE_TAG=2.0.8.2
SHARE_TAG=23.1.0
ACA_TAG=4.3.0
POSTGRES_TAG=14.4
MARIADB_TAG=10.5
TRANSFORM_ENGINE_TAG=5.0.0
ACTIVEMQ_TAG=5.17.1-jre11-rockylinux8

# Server properties
SERVER_NAME=10.0.1.160
aborroy commented 7 months ago

Try adding following property to alfresco service:

-Dftp.externalAddress=10.0.1.160

And use your FTP client with this IP:

$ ftp -p 10.0.1.160 2121
N00BTellaBrot commented 7 months ago

Thank you.

Worked for me.