cancel
Showing results for 
Search instead for 
Did you mean: 

Montar volumenes acs docker

trompe
Confirmed Champ
Confirmed Champ

Buenas noches.

Intentando levantar alfresco mediante docker, funciona correctamente siguiendo los pasos de la guia:

https://docs.alfresco.com/6.0/tasks/deploy-docker-compose.html

El tema es, cuando quiero modificar el docker-compose y aƱadir volumenes para montar donde yo quiero el contenido y los indices (por aquello de que no estƩ en /Var/lib/docker..... y poder montarlo en carpetas especificas...

Bien, he intentado lo siguiente:

En el servicio alfresco  image: alfresco/alfresco-content-repository-community:6.1.2-ga

Definir el directorio de contenido (un disco mas lento y de mƔs espacio), eso funciona OK y se crea bien la carpeta content, etc... (idem con los logs)

volumes:
 - /sharedfolders/dockers/AppData/alfresco/alf_repo_data:/usr/local/tomcat/alf_data
 - /sharedfolders/dockers/AppData/alfresco/logs/alfresco:/usr/local/tomcat/logs

El tema es... si quiero "extender" alfresco y personalizar... me gustaria montar la carpeta "shared/classes" en alguna ubicacion conociida donde poder tocar el alfresco-global.properties y/o lo que haya en la carpeta alfresco... 

Pero si lo monto como volumen:

/sharedfolders/dockers/AppData/alfresco/shared/classes:/usr/local/tomcat/shared/classes

Eso no va a funcionar, porque estoy montando una carpeta "vacia" (shared/classes estĆ” vacia inicalmente) en shared/Classes del contenedir.. y por tanto no levantarĆ”...

Se me ocurre:
- Levantar sin volumen, copiar shared/Classes del contenedor a la ubicación nueva de shared/classes, parar, meter el volumen y a partir de ahi "trabajar"

ĀæPero es correcto asĆ­ o recomendais otra via para hacerlo?

Idem, para el servicio share:
image: alfresco/alfresco-share:6.1.0-RC3

Āæcomo extenderia share sobre la base q estĆ” en la imagen?

Muchas gracias.

EDIT:

He intentado ver la guia de @angelborroy  pero el enlace estĆ” caido: https://community.alfresco.com/community/ecm/blog/2018/05/01/using-alfresco-201804-ea-in-a-simple-pr...


6 REPLIES 6

angelborroy
Community Manager Community Manager
Community Manager

Prueba esta herramienta:

https://github.com/Alfresco/alfresco-docker-installer

Te ayudarÔ a entender cómo se montan los diferentes volúmenes para Docker.

Hyland Developer Evangelist

Buenas Angel 

muchas gracias por responder tan rapido.

Revisando la herramienta (sin probarla) solo mirando en github y viendo como crearĆ­a el docker-compose resultante...

Creo que voy a seguir con la duda...

ā”œā”€ā”€ data                    > DATA STORAGE (it's recommend to perform a backup of this folder)
│   ā”œā”€ā”€ alf-repo-data       > Content Store for Alfresco Repository
│   ā”œā”€ā”€ ldap                > [LDAP] Internal database
│   ā”œā”€ā”€ ocr                 > [OCR] Temporal folder shared between Alfresco Repository and OCR
│   ā”œā”€ā”€ postgres-data       > Internal storage for database
│   ā”œā”€ā”€ slap.d              > [LDAP] Control folder
│   └── solr-data           > Internal storage for SOLR

 Esos estĆ”n genial... en un caso practico, podrian ser carpetas NFS por ejemplo y sobre ella se crean esos volumenes... 

Pero si por ejemplo quiero modificar el WEB-INF/classes/alfresco/share-form-config.xml... en principio, no lo tengo como volumen "persistente" ese fichero... Āætendria que modificar el Dockerfile de la imagen de share para que cargue mi "nuevo" share-form-config.xm?

EDIT:
Como lo realizas en este proyecto, https://github.com/angelborroy/alfresco-docker-201707-GA se acerca mĆ”s a lo que estaba "entendiendo" de que tendria que ir a parar... y es tener la configuración dentro del dockerfile que genere la imagen... 
Según el entorno, puede ser mÔs practico... tenerlo en un volumen persistente que luego puedas acceder y "modificar" a tu antojo y luego reiniciar el contenedor. Sin tener que hacer una imagen nueva... ¿me explico?

SerĆ­a suficiente con montar ese volumen en la ruta de Alfresco, lo puedes hacer desde el propio docker-compose.yml

Hyland Developer Evangelist

Algo estarĆ© haciendo mal... 

En mi docker-compose, para el servicio "alfresco-content-repository  tengo el siguietne volumen, para tener todo de la carpeta shared/classes....

volumes:
- /sharedfolders/dockers/Config/alfresco:/usr/local/tomcat/shared/classes

y tras levantarlo alfresco-content-repository no se levanta correctamente (da un error en la inicializacion del contexto) y la carpeta se crea (pero vacia). 

Por mi experiencia con docker, entiendo que intentar montar esa carpeta como volumen en el destino,pero no al revƩs.

Solo se me ocurre hacer lo siguiente (que me gustaria evitar):

1. Lanzar el docker-compose (sin volumenes) como viene en el dockerhub de alfresco

2. Con todo levantado, entrar en el contenedor y hacer un cp de shared/classes a la carpeta que quiero que haga de volumen

3. Parar todos los contenedores

4. modificar el docker-compose y pasarle como volumen esa carpeta copiada

Deberia levantar correctamente al tener ya los recursos, pero en el volumen que quiero. 

La otra opción, serĆ­a coger el dockerfile de alfrescon-content-repository y modificarlo. 

Tienes que mapear solo el archivo que quieres sobreescribir, no toda la carpeta.

Por ejemplo:

volumes:
- /sharedfolders/dockers/Config/alfresco/alfresco-global.properties:/usr/local/tomcat/shared/classes/alfresco-global.properties

Si no, estƔs sobreescribiendo toda la carpeta con el contenido de tu carpeta local (que carece de muchos de los recursos necesarios).

Hyland Developer Evangelist

Pues algo estarƩ haciendo mal...

ERROR: for alfresco Cannot start service alfresco: b'OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \\"rootfs_linux.go:58: mounting \\\\\\"/sharedfolders/dockers/Config/alfresco/alfresco-global.properties\\\\\\" to rootfs \\\\\\"/var/lib/docker/overlay2/be45a247f89f1fd256ec37ab013fece5b72bf6e541336352e3feb70747262a02/merged\\\\\\" at \\\\\\"/var/lib/docker/overlay2/be45a247f89f1fd256ec37ab013fece5b72bf6e541336352e3feb70747262a02/merged/usr/local/tomcat/shared/classes/alfresco-global.properties\\\\\\" caused \\\\\\"not a directory\\\\\\"\\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type'


Y el volumen estĆ” bien puesto en el docker-compose:

services:
    alfresco:
        image: alfresco/alfresco-content-repository-community:6.1.2-ga
        mem_limit: 1500m
        networks:
            - my-net
        environment:
            JAVA_OPTS : "
                -Ddb.driver=org.postgresql.Driver
                -Ddb.username=alfresco
                -Ddb.password=alfresco
                -Ddb.url=jdbc:postgresql://postgres:5432/alfresco
                -Dsolr.host=solr6
                -Dsolr.port=8983
                -Dsolr.secureComms=none
                -Dsolr.base.url=/solr
                -Dindex.subsystem.name=solr6
                -Dshare.host=localhost
                -Dalfresco.port=8082
                -Daos.baseUrlOverwrite=http://localhost:8082/alfresco/aos
                -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"
                -Ddeployment.method=DOCKER_COMPOSE
                -Dcsrf.filter.enabled=false
                -Xms1024m -Xmx1024m
                "
        ports:
            - 8082:8080 #Browser port
        volumes:
            - /sharedfolders/dockers/Config/alfresco/alfresco-global.properties:/usr/local/tomcat/shared/classes/alfresco-global.properties

Y la ruta es correcta, pero por algun motivo, alfresco-global.properties me lo crea como carpeta en vez de poner el archivo.

Sigo pensando, que el Ćŗnico modo de funcionar, es montando ese volumen, pero creando previamente el archivo (copiandolo antes del contenedor a la maquina).

EDIT: @angelborroy  genial como lo realizais aqui:
https://github.com/keensoft/alfresco-docker-template/tree/master/templates/201806-GA

Esto me cuadra mƔs...muchas gracias.

Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.