Publicado el

Instalar Liferay con Docker

Instalar Liferay con Docker

Cómo instalar Liveray en un Docker

Autores
  • avatar
    Nombre
    Franz Jimeno
    Twitter
    @franzz2000
  • CMIO at HUCA - MD at CS Corredoria (Oviedo) at SESPA
Compartir es sano!
Tabla de contenidos

Introducción

Liveray es un CMS que se ejecuta bajo Java que se utiliza mucho en el entorno empresarial, por tratarse de una herramienta que permite mucha flexibilidad y control de acceso a los diferentes apartados de una web.

En este post vamos a describir cómo instalar la herramienta en un contenedor de Docker en un Mac.

Para instalar Liferay es necesario tener instalado Docker. En un Mac podemos instalarlo a través de homebrew.

Una vez tenemos Docker procederemos a instalar Liferay. Ejecutaremos el siguiente comando en la consola/terminal.

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.2-ga22

Se instalará la versión que se encuentre actualmente activa y que aparece al final del comando. El parámetro -it permitirá cerrar el contenedeor pulsando las teclas Ctrl-C. De otra manera será necesario escribir el siguiente comando en la consola para cerrar el contenedor.

docker kill {containerId}

El parámetro -m libera 8Gb de espacio para la aplicación.

El parámetro -p 8080:8080 mapea el puerto 8080 del contenedor con el puerto 8080 del ordenador local, de esta manera podremos acceder Liferay DXP desde un navegador a través del puerto 8080, escribiendo la siguiente url:

http://localhost:8080

Variables de entorno

Se pueden configurar variables a través de la variable de entorno LIFERAY_JVM_OPTS. Se puede encontrar una descripción de las variables en https://github.com/liferay/liferay-portal/blob/master/portal-impl/src/portal.properties

Todas las variables comenzarán por LIFERAY_ y se continuarán del nombre de la variable. Si esta tiene algún punto, este se sustituirá por _PERIOD_.

Por ejemplo locales.enabled será LIFERAY_LOCALES_PERIOD_ENABLED.

Las variables que contengan una letra mayúscula irán precedidas de _UPPERCASE y la letra en mayúscula. Se verá mejor en un ejemplo. La variable jdbc.default.driverClassName sería JDBC_PERIOD_DEFAULT_DRIVER_UPPERCASEC_LASS_UPPERCASEN_AME.

Las variables las podemos agregar con el parámetro -e

docker run -it -m 8g -p 8080:8080 -e LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_JNDI_PERIOD_NAME=jdbc/MyPool liferay/dxp:[tag] 

Podemos concatenar parámetros con -e. Ej: -e VARIABLE_A=valor -e VARIABLE_B=valor

También podemos añadir las propiedades en el fichero portal-ext.properties

echo "jdbc.default.jndi.name=jdbc/MyPool" >> [host folder]/files/portal-ext.properties

Sistema de archivos

Los contenedores de Docker no son persistentes, cada vez que se reinicie el contenedor se perderán todos los datos introducidos. Para probar cambios sin tener que guardar una nuev imagen, se puede mapear el sistema de archivos del cliente en el sistema de ficheros del contenedor.

Arranca el contenedor con la opción -v $(pwd)/xyz123:/mnt/liferay para vincular el directorio local $(pwd)/xyz123/ al directorio /mnt/liferay del contenedor.

$(pwd) es el directorio donde se ejecuta el comando y xyz123 será el directorio que deseemos utilizar para ubicar los ficheros en nuestro directorio.

Los ficheros que se encuentren en el directorio $(pwd)/xyz123 se encontrarán también en el directorio /mnt/liferay/file del contenedor y se compiarán en el directorio /opt/liferay antes de que arranque Liferay DXP.

Por ejemplo, si quieres cambiar el fichero setenv.sh de Tomcat, entonces añade el fichero setenv.sh en el directorio $(pwd)/xyz123/files/tomcat/bin/setenv.sh y el fichero sobreescribirá el fichero setenv.sh que se encuentra en /opt/liferay/tomcat/bin/setenv.sh antes de que arranque Liferay DXP.

Scripts

Todos los scripts en el directorio /mnt/liferay/scripts se ejecutarán antes de que arranque Liferay DXP. Coloca los ficheros en $(pwd)/xyz123/deploy para instalar los módulos en el momento del arranque.

Se puede encontrar más información en https://learn.liferay.com/dxp/latest/en/installation-and-upgrades/installing-liferay/using-liferay-docker-images.html

Compartir es sano!