Project:Sandbox

/usr/bin/python3.5 /home/miguel/git/rsi/abside-in-a-box/tools/docker/doc-generator/doc-generator.py -t tools/docker/doc-generator/templates -o wiki Se utiliza docker-compose en desarrollo y docker en modo swarm para desplegar la aplicación en producción. Ver este enlace para entender el proceso de forma generica

Prerequisitos

 * Instalar docker: intrucciones en web docker y web mesosphere
 * Instalar docker-compose

Construcción de imágenes docker
Desde el directorio donde se encuentra docker-compose.yml:

prepare.sh docker-compose build

Arranque y parada de la aplicación
Desde el directorio donde se encuentra docker-compose.yml:

docker-compose up docker-compose down

Subida al registro de imágenes docker
Desde el directorio donde se encuentra docker-compose.yml:

docker-compose push

Prerequisitos

 * Instalar docker

Ejecutar una vez
docker login registry.gitlab.com docker swarm init El login en gitlab hay que hacerlo con una cuenta de gitlab.com con acceso al repositorio https://gitlab.com/rsi/abside-in-a-box, ya que es donde se almacenan las imagenes docker del proyecto.

Para desplegar, controlar y borrar
docker stack deploy --compose-file docker-compose.yml --with-registry-auth abside-in-a-box` docker services ls docker stack ps abside-in-a-box docker stack services abside-in-a-box docker stack rm abside-in-a-box Se crean dos volúmenes para almacenar la base de datos mysql y db2

docker volume ls

Lista de imágenes
El proyecto Abside in the Cloud ha creado 22 imágenes docker con los diferentes componentes del sistema.

La lista completa de las estas imágenes docker es:
 * apache


 * db2


 * haproxy


 * ldap_am


 * midas


 * ms


 * mysql_cmis


 * mysql_midas


 * mysql_ms


 * mysql_ntf


 * mysql_tuxedo


 * mysql_wiki


 * mysql_wso2


 * neo4j


 * nodejs


 * ntf


 * openldap


 * samba


 * tuxedo


 * tuxedo_servlet


 * wiki


 * wso2esb

Imagen apache

 * nombre contenedor
 * apache


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/apache:1.0.0


 * imagen base
 * httpd:2.4


 * variables de entorno
 * No tiene


 * mapedo de puertos
 * puerto 8081 del host mapeado al puerto 80 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM httpd:2.4 COPY *.tar / RUN tar xvf /*.tar -C /usr/local/apache2/htdocs/

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen db2

 * nombre contenedor
 * db2


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/db2:1.0.0


 * imagen base
 * ibmcom/db2express-c:10.5.0.5-3.10.0


 * variables de entorno
 * LICENSE: accept
 * DB2INST1_PASSWORD: CmmuWPt87Qh
 * DB2_DATABASE: ABSIDE_C
 * mapedo de puertos
 * puerto 2222 del host mapeado al puerto 22 del contenedor
 * volúmenes
 * volumen db2_abside montado en el directorio /home/db2inst1/db2inst1 del contenedor

Dockerfile
FROM ibmcom/db2express-c:10.5.0.5-3.10.0

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /home/db2inst1/db2inst1 /SQL \ && chown -R db2inst1:db2inst1 /home/db2inst1/db2inst1 /SQL

VOLUME ["/home/db2inst1/db2inst1"] CMD ["db2start"]

COPY entrypoint.sh / COPY abside_db2luw.sql / COPY DB2_ABSIDE01.tar.gz /

RUN tar zxvf /DB2_ABSIDE01.tar.gz -C /SQL \ && rm /DB2_ABSIDE01.tar.gz \ && for sql in /SQL/*.sql; do perl -pi -e 's/INSERT INTO \w+\.(\w+)/INSERT INTO PRGQ01.$1/' $sql; done

RUN chmod a+x /entrypoint.sh

Imagen haproxy

 * nombre contenedor
 * haproxy


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/haproxy:1.0.0


 * imagen base
 * haproxy:1.7


 * variables de entorno
 * No tiene


 * mapedo de puertos
 * puerto 80 del host mapeado al puerto 80 del contenedor
 * puerto 6969 del host mapeado al puerto 6969 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM haproxy:1.7 COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen ldap_am
Esta imagen ejecuta el visor de LDAP LDAP Accoumt Manager, LAM. Los detalles de este software pueden encontrase aquí

Los pasos para utilizar esta imagen son:


 * 1) Head your browser to http://localhost:8080,
 * 2) Go to LAM configuration / Edit general settings
 * 3) Login with default password lam and change master password.
 * 4) Go to LAM configuration / Edit server profiles / General Settins
 * 5) Still with password lam go to Edit server profiles to setup your OpenLDAP database.
 * 6) Set server address. If use with docker-compose/docker swarm the name ldap serveraddress is ldap://openldap:389
 * 7) Set tree suffix taken from DOMAIN in ldap environment variable of image ldap (ex. dc=cajarural,dc=com).
 * 8) Update Security Setting. Add user cn=admin with dc DOMIN. (ex. cn=admin,dc=cajarural,dc=com)
 * 9) Go to LAM configuration / Edit server profiles / General Settins
 * 10) Update dc of different elements (ex. dc=cajarural,dc=com)
 * 11) Next login should use the OpenLdap with user admin set in previous step and PASSWORD environment variable set in openldap image


 * nombre contenedor
 * ldap_am


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/ldap_am:1.0.0


 * imagen base
 * ubuntu:trusty


 * variables de entorno
 * No tiene


 * mapedo de puertos
 * puerto 8888 del host mapeado al puerto 80 del contenedor
 * volúmenes
 * volumen ldap_am_account montado en el directorio /var/lib/ldap-account-manager del contenedor
 * volumen ldap_am_etc montado en el directorio /etc/ldap-account-manager del contenedor

Dockerfile
FROM ubuntu:trusty ENV TERM xterm
 * 1) ubuntu xenial dropped php5 and installs php7
 * 2) ldap-account-manager supports php7 with release 5.3
 * 3) currently (Nov16) xenial provides ldap-account-manager 5.2

RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y ldap-account-manager RUN sed -i 's,DocumentRoot .*,DocumentRoot /usr/share/ldap-account-manager,' /etc/apache2/sites-available/000-default.conf RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log RUN ln -sf /proc/self/fd/2 /var/log/apache2/error.log

COPY start.sh /start.sh CMD /start.sh

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

EXPOSE 80 VOLUME /var/lib/ldap-account-manager VOLUME /etc/ldap-account-manager

Imagen midas

 * nombre contenedor
 * midas


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/midas:1.0.0


 * imagen base
 * jboss/wildfly:8.2.1.Final


 * variables de entorno
 * MIDAS_DB_PORT: 3306
 * ABSIDE_ENDPOINT_WS: ws://abside.docker:6969
 * MIDAS_DB_USER: midas_user
 * MIDAS_DB_PASSWORD: t0MmcELLkDD
 * SERVER_NODE: nodejs
 * PORT_TUX: 8080
 * LDAP_SERVER: samba
 * LDAP_DOMAIN: gcrdesarrollo.local
 * MIDAS_DB_NAME: midas_db
 * SERVER_TUX: tuxedo_servlet
 * MIDAS_DB_HOST: mysql_midas
 * MIDAS_DB_JNDI: abside_midas
 * PORT_NODE: 7001
 * mapedo de puertos
 * puerto 8080 del host mapeado al puerto 8080 del contenedor
 * puerto 9990 del host mapeado al puerto 9990 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM jboss/wildfly:8.2.1.Final

EXPOSE 8080
 * 1) Expose the ports we're interested in

EXPOSE 9990
 * 1) Expose the ports we're interested in

USER root RUN yum update -y \ && yum -y install epel-release \ && yum repolist \ && yum -y install nc  mysql \ && yum clean all

RUN mkdir -p /opt/jboss/wildfly/customization/ RUN chown -R jboss:jboss /opt/jboss/wildfly/customization/ ADD customization /opt/jboss/wildfly/customization/

RUN mkdir -p /opt/jboss/wildfly/modules/rsi RUN chown -R jboss:jboss /opt/jboss/wildfly/modules/rsi ADD rsi /opt/jboss/wildfly/modules/rsi/

RUN mkdir -p /MIDAS RUN chown -R jboss:jboss /MIDAS ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

USER jboss

CMD ["/opt/jboss/wildfly/customization/execute.sh"]

Imagen ms

 * nombre contenedor
 * ms


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/ms:1.0.0


 * imagen base
 * jboss/wildfly:8.2.1.Final


 * variables de entorno
 * SERVER_MIDAS: midas
 * MS_DB_PORT: 3306
 * ABSIDE_ENDPOINT_WS: ws://abside.docker:6969
 * MS_DB_PASSWORD: t0MmcELLkDD
 * PORT_MIDAS: 8080
 * SERVER_NTF: ntf
 * PORT_TUX: 8080
 * PORT_NTF: 8080
 * MS_DB_HOST: mysql_ms
 * SERVER_TUX: tuxedo_servlet
 * MS_DB_USER: ms_user
 * MIDAS_DB_JNDI: abside_midas
 * MS_DB_NAME: ms_db
 * mapedo de puertos
 * puerto 8480 del host mapeado al puerto 8080 del contenedor
 * puerto 10390 del host mapeado al puerto 9990 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM jboss/wildfly:8.2.1.Final

EXPOSE 8080
 * 1) Expose the ports we're interested in

EXPOSE 9990
 * 1) Expose the ports we're interested in

USER root RUN yum update -y \ && yum -y install epel-release \ && yum repolist \ && yum -y install nc  mysql \ && yum clean all

RUN mkdir -p /opt/jboss/wildfly/customization/ RUN chown -R jboss:jboss /opt/jboss/wildfly/customization/ RUN mkdir -p /opt/jboss/wildfly/customization/LOGS RUN chown -R jboss:jboss /opt/jboss/wildfly/customization/LOGS/ ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

USER jboss ADD customization /opt/jboss/wildfly/customization/

RUN tar xvf /opt/jboss/wildfly/customization/security-module-static.tar -C /opt/jboss/wildfly/welcome-content/

CMD ["/opt/jboss/wildfly/customization/execute.sh", "standalone" ,"standalone.xml"]
 * 1) 172.22.4.39 	A020NFS01.gcrdesarrollo.local

Imagen mysql_cmis

 * nombre contenedor
 * mysql_cmis


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_cmis:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: cmis_document
 * MYSQL_USER: cmis_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * No tiene


 * volúmenes
 * volumen cmis_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY *.tar.gz / RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 RUN cd /docker-entrypoint-initdb.d \ && mv cmis_document.sql_ddl 01_ddl.sql \ && mv cmis_document.sql_ddl_rutinas 02_ddl_rutinas.sql \ && mv cmis_document.sql 03.sql \ && mv *.txt ../

COPY my.cnf /etc/mysql/conf.d/my.cnf

RUN perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB !' /docker-entrypoint-initdb.d/01_ddl.sql

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen mysql_midas

 * nombre contenedor
 * mysql_midas


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_midas:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: midas_db
 * MYSQL_USER: midas_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * No tiene


 * volúmenes
 * volumen midas_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY my.cnf /etc/mysql/conf.d/my.cnf COPY *.tar.gz /

RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 RUN cd /docker-entrypoint-initdb.d \ && mv abside_01.sql_ddl 01_ddl.sql \ && mv abside_01.sql_ddl_rutinas 02_ddl_rutinas.sql \ && mv abside_01.sql 03.sql \ && mv *.txt ../ \ && perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB !' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's/source di_diario_electron.result.txt;//' /docker-entrypoint-initdb.d/03.sql \ && rm /di_diario_electron.result.txt

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen mysql_ms

 * nombre contenedor
 * mysql_ms


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_ms:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: ms_db
 * MYSQL_USER: ms_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * No tiene


 * volúmenes
 * volumen ms_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY my.cnf /etc/mysql/conf.d/my.cnf COPY *.tar.gz /

RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 \ && cd /docker-entrypoint-initdb.d \ && mv security_module.sql_ddl 01_ddl.sql \ && mv security_module.sql_ddl_rutinas 02_ddl_rutinas.sql \ && echo "SET foreign_key_checks = 0;" > 03.sql \ && echo "SET @disable_triggers = 1;" >> 03.sql \ && cat security_module.sql >> 03.sql \ && rm security_module.sql \ && mv *.txt ../ \ && perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB !' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's/source tb_vw_user.result.txt;//' /docker-entrypoint-initdb.d/03.sql \ && perl -pi -e 's/source tb_security_module_trace.result.txt;//' /docker-entrypoint-initdb.d/03.sql \ && rm /tb_vw_user.result.txt /tb_security_module_trace.result.txt

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen mysql_ntf

 * nombre contenedor
 * mysql_ntf


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_ntf:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: ntf_liferay
 * MYSQL_USER: ntf_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * No tiene


 * volúmenes
 * volumen ntf_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY my.cnf /etc/mysql/conf.d/my.cnf COPY *.tar.gz /
 * 1) COPY 04_ntf_liferay_trigger.sql /docker-entrypoint-initdb.d

RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 \ && cd /docker-entrypoint-initdb.d \ && echo "SET foreign_key_checks = 0;" > 01_ddl.sql \ && cat ntf_liferay.sql_ddl >> 01_ddl.sql \ && rm ntf_liferay.sql_ddl \ && mv ntf_liferay.sql_ddl_rutinas 02_ddl_rutinas.sql \ && echo "SET foreign_key_checks = 0;" > 03.sql \ && echo "SET @disable_triggers = 1;" >> 03.sql \ && echo "SET time_zone = '+00:00'; " >> 03.sql \ && cat ntf_liferay.sql >> 03.sql \ && rm ntf_liferay.sql \ && mv *.txt ../ \ && perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB AUTO_INCREMENT=27 !' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e '$/=undef; s#DELIMITER\s+;;.*50003\s+CREATE.*TRIGGER RSI_OPERATION_TRIG_A_I.*DELIMITER\s+;##sm' 01_ddl.sql \ && perl -pi -e '$/=undef; s!.*50003 CREATE.*TRIGGER RSI_OPERATION_TRIG_A_I.*END \*/;;!!sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!.*50003\s+SET\s+sql_mode\s+=\s+@saved_sql_mode.*!!' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!.*50003\s+SET\s+character_set_client\s+=\s+@saved_cs_client.*!!' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!.*50003\s+SET\s+collation_connection\s+=\s+@saved_col_connection.*!!' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's/source jmeter_inserts.result.txt;//' /docker-entrypoint-initdb.d/03.sql \ && perl -pi -e 's/source rsi_connections_log.result.txt;//' /docker-entrypoint-initdb.d/03.sql \ && rm /jmeter_inserts.result.txt /rsi_connections_log.result.txt

Imagen mysql_tuxedo

 * nombre contenedor
 * mysql_tuxedo


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_tuxedo:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: absidetux01
 * MYSQL_USER: tuxedo_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * No tiene


 * volúmenes
 * volumen tuxedo_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY my.cnf /etc/mysql/conf.d/my.cnf COPY *.tar.gz /

RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 \ && cd /docker-entrypoint-initdb.d \ && mv absidetux_01.sql_ddl 01_ddl.sql \ && rm absidetux_01.sql_ddl_rutinas  \ && echo "SET foreign_key_checks = 0;" > 03.sql \ && echo "SET @disable_triggers = 1;" >> 03.sql \ && echo "SET time_zone = '+00:00'; " >> 03.sql \ && cat absidetux_01.sql >> 03.sql \ && echo "SET @disable_triggers = 0;" >> 03.sql \ && rm absidetux_01.sql \ && mv *.txt ../ \ && perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB !' /docker-entrypoint-initdb.d/01_ddl.sql

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen mysql_wiki

 * nombre contenedor
 * mysql_wiki


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_wiki:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: mediawiki
 * MYSQL_USER: wiki_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * puerto 3306 del host mapeado al puerto 3306 del contenedor
 * volúmenes
 * volumen wiki_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY my.cnf /etc/mysql/conf.d/my.cnf COPY *.tar.gz /

RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 \ && cd /docker-entrypoint-initdb.d \ && mv absidewiki.sql_ddl 01_ddl.sql \ && mv absidewiki.sql_ddl_rutinas 02_ddl_rutinas.sql \ && mv absidewiki.sql 03.sql \ && mv *.txt ../ \ && perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB !' /docker-entrypoint-initdb.d/01_ddl.sql

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen mysql_wso2

 * nombre contenedor
 * mysql_wso2


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/mysql_wso2:1.0.0


 * imagen base
 * mysql:5.7


 * variables de entorno
 * MYSQL_PASSWORD: t0MmcELLkDD
 * MYSQL_DATABASE: wso2esb
 * MYSQL_USER: wso2_user
 * MYSQL_ROOT_PASSWORD: CmmuWPt87Qh
 * mapedo de puertos
 * No tiene


 * volúmenes
 * volumen wso2_mysqldb montado en el directorio /var/lib/mysql del contenedor

Dockerfile
FROM mysql:5.7

COPY my.cnf /etc/mysql/conf.d/my.cnf COPY *.tar.gz /

RUN tar zxvf /*.tar.gz -C /docker-entrypoint-initdb.d --strip=1 \ && cd /docker-entrypoint-initdb.d \ && mv wso2esb.sql_ddl 01_ddl.sql \ && mv wso2esb.sql_ddl_rutinas 02_ddl_rutinas.sql \ && mv wso2esb.sql 03.sql \ && mv *.txt ../ \ && perl -pi -e '$/=undef; s/^CREATE\s+TABLESPACE.*ENGINE=ndbcluster;//sm' /docker-entrypoint-initdb.d/01_ddl.sql \ && perl -pi -e 's!/\*.* TABLESPACE .* \*/\s*ENGINE=ndbcluster !ENGINE=InnoDB !' /docker-entrypoint-initdb.d/01_ddl.sql

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

Imagen neo4j
Esta es una imagen que no pertence al operativo de Abside y que ha sido incluida para documentar el sistema.

Levanta una base de datos neo4j en la que se carga un modelo de los diferentes componentes de Abside y sus relaciones.

La consola web de neo4j es accesible desde el puerto 7474 utilizando el usuario y password definidos en la variable de entorno NEO4J_AUTH.

Desde la consola se pueden ejecutar queries contra la base de datos. Por ejemplo:

Para mostrar todos los componentes y relaciones:

MATCH (n) RETURN n Para mostrar solo las imagenes creadas con componentes Abside

MATCH (n:DockerAbsideImage) RETURN n Para mostrar la imagen ntf

MATCH (n { name:'ntf'}) RETURN n Para mostrar la imagen ntf y las images a las que se conecta

MATCH (n { name:'ntf'}) MATCH (n)-[]-&gt;(m:DockerAbsideImage) RETURN n,m El puerto 7687 también se haya a la escucha para el interfaz bolt utilizado por los drives de Neo4j


 * nombre contenedor
 * neo4j


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/neo4j:1.0.0


 * imagen base
 * neo4j:3.2


 * variables de entorno
 * NEO4J_AUTH: neo4j/rsi
 * mapedo de puertos
 * puerto 7474 del host mapeado al puerto 7474 del contenedor
 * puerto 7687 del host mapeado al puerto 7687 del contenedor
 * volúmenes
 * volumen neo4j_data montado en el directorio /data del contenedor

Dockerfile
FROM neo4j:3.2

COPY db.cql / COPY mydocker-entrypoint.sh / RUN chmod a+x /mydocker-entrypoint.sh

ENTRYPOINT ["/mydocker-entrypoint.sh"] CMD ["neo4j"]

Imagen nodejs

 * nombre contenedor
 * nodejs


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/nodejs:1.0.0


 * imagen base
 * buildpack-deps:jessie


 * variables de entorno
 * https_proxy: http://P02MAV01:Mg89Es1__172.22.5.32:8080
 * http_proxy: http://P02MAV01:Mg89Es1__172.22.5.32:8080
 * mapedo de puertos
 * puerto 16969 del host mapeado al puerto 6969 del contenedor
 * puerto 7001 del host mapeado al puerto 7001 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM buildpack-deps:jessie

USER root ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN set -ex \ && for key in \ 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \ FD3A5288F042B6850C66B31F09FE44734EB7990E \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ B9AE9905FFD7803F25714661B63B535A4C206CA9 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ ; do \ gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ done
 * 1) gpg keys listed at https://github.com/nodejs/node

ENV NODE_VERSION 0.10.46

RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \ && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ && grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ && tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \ && rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs

RUN npm install websocket RUN npm install express RUN npm install body-parser RUN npm install method-override

COPY WSserverHA.js /

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

CMD [ "node", "/WSserverHA.js"]

Imagen ntf

 * nombre contenedor
 * ntf


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/ntf:1.0.0


 * imagen base
 * jboss/wildfly:8.2.1.Final


 * variables de entorno
 * LDAP_MOD_USER_PSW: A8F488C608539CCC12A9F1B5ADDCF2069E1E28373E7D4Z3C5481252D6ZD9BC7C
 * NTF_DB_NAME: ntf_liferay
 * MS_DB_PORT: 3306
 * ABSIDE_ENDPOINT_WS: ws://abside.docker:6969
 * MS_DB_PASSWORD: t0MmcELLkDD
 * SERVER_NTF: ntf
 * LDAP_MOD_USER: 8EA39410C4F591C108099C7E1AZ0541Z7CD3A40750C0D6E748E5A82071894E3D
 * PORT_TUX: 8080
 * ABSIDE_ENDPOINT: abside.docker
 * SECURITY_MODULE_PORT: 8080
 * NTF_DB_HOST: mysql_ntf
 * SERVER_SOLR: lnxbox12
 * LDAP_DOMAIN: gcrdesarrollo.local
 * SERVER_JMS: ntf
 * SERVER_MIDAS: midas
 * WIKI_PORT: 80
 * DOCRENDER_PORT: 80
 * LDAP_SERVER_NAME: samba
 * NTF_DB_USER: ntf_user
 * SECURITY_MODULE_SERVER: ms
 * PWD_JMS: X02abs01.123
 * MS_DB_NAME: ms_db
 * DOCRENDER_SERVER: certificacion.abside.risa
 * PORT_BBDD: 3306
 * PORT_MIDAS: 8080
 * USER_JMS: x02abs01
 * SERVER_BBDD: mysql_ntf
 * PORT_NTF: 8080
 * NTF_DB_PASSWORD: t0MmcELLkDD
 * MS_DB_HOST: mysql_ms
 * PORT_SOLR: 8380
 * LDAP_PROTOCOL_SSL: false
 * PORT_JMS: 5455
 * NTF_DB_PORT: 3306
 * WIKI_SERVER: abside.docker
 * SERVER_TUX: tuxedo_servlet
 * PORT_JMS_HTTP: 8080
 * MS_DB_USER: ms_user
 * mapedo de puertos
 * puerto 8180 del host mapeado al puerto 8080 del contenedor
 * puerto 10090 del host mapeado al puerto 9990 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM jboss/wildfly:8.2.1.Final

EXPOSE 8080
 * 1) Expose the ports we're interested in

EXPOSE 9990
 * 1) Expose the ports we're interested in

USER root ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN yum update -y \ && yum -y install epel-release \ && yum repolist \ && yum -y install mysql nc \ && yum clean all RUN mkdir -p /opt/jboss/wildfly/customization/ RUN chown -R jboss:jboss /opt/jboss/wildfly/customization/ RUN mkdir -p /LOGS/NTF RUN chown -R jboss:jboss /LOGS/ ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

USER jboss ADD customization /opt/jboss/wildfly/customization/ RUN tar xvf /opt/jboss/wildfly/customization/ContenidoEstaticoMIDAS*.tar -C /opt/jboss/wildfly/welcome-content/

CMD ["/opt/jboss/wildfly/customization/execute.sh", "standalone" ,"standalone-full-ha.xml"]
 * 1) 172.22.4.39 	A020NFS01.gcrdesarrollo.local

Imagen openldap
Esta imagen arrance un openldap, el cual eses utilizado en Abside para albergar las transaciones de tuxedo.

Se instala sobre una imagen ubuntu el paquete openldap y se le añade:


 * 1) el esquema sergener, necesario para cargar las transacciones de tuxedo.
 * 2) la carga del fichero ldif con las transaciones de tuxedo

La inclusión del esquema sergener.schema se hace en tiempo de ejecución la primera vez que se arranca la imagen. Para ello se siguen las instrucciones que se detallan aquí

La carga del fichero ldif con las transacciones de tuxedo también se relaiza en la primera ejecución de la imagen.

La configuración del openldap y la carga de transacciones se almacena en volúmenes externos al contenedor para sobrevivir rearranques:


 * configuración: volumen /etc/ldap
 * datos: volúmenes /var/lib/ldap y /var/backups

La imagen proporciona las siguientes variables de configuración:


 * DOMAIN (obligatorio)

El dominio del ldap, por ejemplo. El distinguish name es creado a partir de este dominio, por ejemplo.

El usuario administrador también es creado a partir de este dominio, con el formato


 * ORGANIZATION (obligatorio)

El nombre de la organización, por ejemplo 'Rural Sistemas Informáticos'


 * PASSWORD (opcional)

Contraseña del usuario admininstrador. Si no se proporciona la contraseña es generada automáticamente y mostrada en el log del contenedor docker durate el arranque.


 * DEBUG (opcional) Espcifica el nivel de trazas. Por defecto es 0 (sin trazas)

Los puertos que exponse la imagen son:


 * 389 (LDAP and LDAP+startTLS)
 * 636 (LDAP+SSL)

Ejemplo de cómo arrancar la imagen

docker run -it --rm --name openldap \ -p 389:389 \ -e DEBUG_LEVEL=1 \ -e DOMAIN=nessa.com \ -e ORGANIZATION=&quot;RSI&quot; \ -e PASSWORD=1234567890 \ openldap Para acceder al LDAP se puede utilizar cualquier visor de LDAPs, como Apache Directory Studio apuntando al puerto 389 de la máquina host utilizando como cuenta de administración, con password

El LDAP también es accesible a través de la imagen ldap_am del proyecto


 * nombre contenedor
 * openldap


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/openldap:1.0.0


 * imagen base
 * ubuntu:14.04


 * variables de entorno
 * DOMAIN: nessa.com
 * DEBUG_LEVEL: 0
 * PASSWORD: 123456789
 * ORGANIZATION: RSI
 * mapedo de puertos
 * puerto 1389 del host mapeado al puerto 389 del contenedor
 * puerto 636 del host mapeado al puerto 636 del contenedor
 * volúmenes
 * volumen openldap_data montado en el directorio /var/lib/ldap del contenedor
 * volumen openldap_backup montado en el directorio /var/backups del contenedor
 * volumen openldap_ssl montado en el directorio /ssl del contenedor
 * volumen openldap_etc montado en el directorio /etc/ldap del contenedor

Dockerfile
FROM ubuntu:14.04

USER root

ENV TERM xterm ENV LANG "en_US.UTF-8" RUN apt-get update RUN apt-get install -y lsb-release language-pack-en less vim wget software-properties-common apt-transport-https python3 RUN locale-gen ${LANG} RUN update-locale LANG=${LANG} RUN rm /root/.bashrc /etc/bash.bashrc /root/.profile /etc/profile /etc/skel/.bashrc

ENV DOMAIN       "gcrdesarrollo.local" ENV ORGANIZATION "RSI" ENV PASSWORD     "1234567890" ENV DEBUG        1

RUN echo "slapd slapd/password1 password test" | debconf-set-selections RUN echo "slapd slapd/password2 password test" | debconf-set-selections RUN apt-get update RUN apt-get install -y slapd ldap-utils debconf-utils pwgen sasl2-bin RUN mkdir /ssl RUN mkdir /ssl/certs RUN mkdir /ssl/private RUN chmod o= /ssl/private RUN chgrp openldap /ssl/private COPY start.sh /start.sh CMD /start.sh
 * 1) COPY ldap.conf /etc/ldap/ldap.conf

RUN chown -R openldap:openldap /etc/ldap

COPY sergener.schema /etc/ldap/schema/sergener.schema COPY schema-build.conf /tmp/schema-build.conf

COPY clean-ldif.py / RUN chmod a+x /clean-ldif.py

COPY ldif/* /ldif/

EXPOSE 389 EXPOSE 636

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

VOLUME /ssl VOLUME /var/backups VOLUME /var/lib/ldap

Imagen samba
Imagen con Samba configurado como Active Directory Domain

Con samba se consigue remplazar el Active Directory (que corre sobre Windows y que por tanto no está disponible como imagen docker) y que el frontend de Abside utiliza para hacer la identificación de usuarios

Esta imagen se basa en esta imagen en docker hub

Otros recursos:


 * Guía de Samba como Active Directory
 * Uso de puertos con Samba


 * nombre contenedor
 * samba


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/samba:1.0.0


 * imagen base
 * ubuntu:17.04


 * variables de entorno
 * SAMBA_ADMIN_PASSWORD: T0p$$ecret
 * LDAP_ALLOW_INSECURE: true
 * SAMBA_DOMAIN: gcrdesarrollo
 * SAMBA_REALM: gcrdesarrollo.local
 * ROOT_PASSWORD: T0p$$ecret
 * mapedo de puertos
 * puerto 389 del host mapeado al puerto 389 del contenedor
 * volúmenes
 * volumen samba_data montado en el directorio /var/lib/samba del contenedor
 * volumen samba_etc montado en el directorio /etc del contenedor

Dockerfile
FROM ubuntu:17.04
 * 1) FROM ubuntu:trusty

ENV DEBIAN_FRONTEND noninteractive

RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
 * 1) Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start.

RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y openssh-server supervisor RUN mkdir -p /var/run/sshd RUN mkdir -p /var/log/supervisor RUN sed -ri 's/PermitRootLogin without-password/PermitRootLogin Yes/g' /etc/ssh/sshd_config
 * 1) Setup ssh and install supervisord

RUN apt-get install -y bind9 dnsutils ADD named.conf.options /etc/bind/named.conf.options
 * 1) Install bind9 dns server

RUN apt-get install -y build-essential libacl1-dev libattr1-dev \ libblkid-dev libgnutls28-dev libreadline-dev python-dev libpam0g-dev \ python-dnspython gdb pkg-config libpopt-dev libldap2-dev \ dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl python-xattr RUN apt-get install -y samba smbclient krb5-kdc
 * 1) Install samba and dependencies to make it an Active Directory Domain Controller

RUN apt-get install -y expect pwgen ADD kdb5_util_create.expect kdb5_util_create.expect
 * 1) Install utilities needed for setup

RUN apt-get install -y rsyslog
 * 1) Install rsyslog to get better logging of ie. bind9

RUN apt-get install -y python3-pip \ && pip3 install ldif3
 * 1) Install dependencies for ldif.py

RUN mkdir -p /var/run/named \ && mkdir -p /var/lib/samba/private/dns \ && chown -R bind:bind /var/run/named /var/lib/samba/private/dns
 * 1) Create run directory for bind9


 * 1) Install sssd for UNIX logins to AD
 * 2) RUN apt-get install -y sssd sssd-tools libpam-sss libnss-sss libnss-ldap
 * 3) ADD sssd.conf /etc/sssd/sssd.conf
 * 4) RUN chmod 0600 /etc/sssd/sssd.conf

RUN apt-get install locales RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8
 * 1) Set the locale

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ADD load_users.sh /usr/local/bin/load_users.sh ADD ldif.py /usr/local/bin/ldif.py RUN chmod +x /usr/local/bin/load_users.sh /usr/local/bin/ldif.py
 * 1) Add load_users script and ldif.py

ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf ADD init.sh /init.sh RUN chmod 755 /init.sh EXPOSE 22 53 389 88 135 139 138 445 464 3268 3269 ENTRYPOINT ["/init.sh"] CMD ["app:start"]
 * 1) Add supervisord and init

COPY ldif/*.ldif /ldif/

VOLUME ["/var/lib/samba", "/etc"]

Imagen tuxedo

 * nombre contenedor
 * tuxedo


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/tuxedo:1.0.0


 * imagen base
 * oraclelinux


 * variables de entorno
 * TUXDIR: /home/oracle/tuxHome/tuxedo12.1.3.0.0
 * mapedo de puertos
 * puerto 5001 del host mapeado al puerto 5001 del contenedor
 * puerto 5002 del host mapeado al puerto 5002 del contenedor
 * puerto 5010 del host mapeado al puerto 5010 del contenedor
 * puerto 5020 del host mapeado al puerto 5020 del contenedor
 * volúmenes
 * No tiene

Dockerfile
#
 * 1) Dockerfile template for Tuxedo 12.1.3
 * 2) Download the following files to an empty directory:
 * 3)   tuxedo121300_64_Linux_01_x86.zip	from http://www.oracle.com/technetwork/middleware/tuxedo/downloads/index.html
 * 4)   p22090512_121300_Linux-x86-64.zip 	or whatever the latest Tuxedo rolling patch is from My Oracle Support
 * 1)   p22090512_121300_Linux-x86-64.zip 	or whatever the latest Tuxedo rolling patch is from My Oracle Support

FROM oraclelinux
 * 1) Pull base image

RUN yum -y install unzip gcc file; yum -y clean all && \ groupadd -g 1000 oracle; useradd -b /home -m -g oracle -u 1000 -s /bin/bash oracle && \ echo oracle:oracle | chpasswd; echo root:samplesvm | chpasswd
 * 1) Core install doesn't include unzip or gcc, add them
 * 2) Create the installation directory tree and user oracle with a password of oracle

ADD /packages/* /home/oracle/Downloads/
 * 1) COPY install.sh tuxedo12.1.3.rsp p*_121300_Linux-x86-64.zip tuxedo121300_64_Linux_01_x86.zip /home/oracle/Downloads/
 * 2) ADD simpapp_runme.sh start_tlisten.sh /home/oracle/

RUN chown oracle:oracle -R /home/oracle WORKDIR /home/oracle/Downloads USER oracle

RUN sh install.sh p*_121300_Linux-x86-64.zip tuxedo121300_64_Linux_01_x86.zip
 * 1) Install Tuxedo, SALT, and TSAM Agent

RUN rm -f *.zip
 * 1) Clean up installer files
 * 1) Configure network ports
 * 2) tlisten	nlsaddr:5001  jmx:5002
 * 3) SALT 		http:5010
 * 4) WSL		5020
 * 5) EXPOSE 5001 5002 5010 5020
 * 6) USER root
 * 7) RUN yum -y install bind-utils
 * 1) RUN yum -y install bind-utils

USER oracle WORKDIR /home/oracle CMD ["/bin/bash"]

Imagen tuxedo_servlet

 * nombre contenedor
 * tuxedo_servlet


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/tuxedo_servlet:1.0.0


 * imagen base
 * jboss/wildfly:8.2.1.Final


 * variables de entorno
 * TUXEDO_DB_NAME: absidetux01
 * TUXEDO_DB_PORT: 3306
 * TUX_PORT: 8080
 * TUXEDO_DB_PASSWORD: t0MmcELLkDD
 * TUXEDO_DB_USER: tuxedo_user
 * TUXEDO_DB_HOST: mysql_tuxedo
 * TUX_NAME: tuxedo_servlet
 * mapedo de puertos
 * puerto 8380 del host mapeado al puerto 8080 del contenedor
 * puerto 10290 del host mapeado al puerto 9990 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM jboss/wildfly:8.2.1.Final

EXPOSE 8080
 * 1) Expose the ports we're interested in

EXPOSE 9990
 * 1) Expose the ports we're interested in

USER root RUN mkdir -p /ABSIDE/logs/TUXEDO/ RUN chown -R jboss:jboss /ABSIDE ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN yum update -y \ && yum -y install epel-release \ && yum repolist \ && yum -y install mysql nc \ && yum clean all RUN mkdir -p /opt/jboss/wildfly/customization/ RUN chown -R jboss:jboss /opt/jboss/wildfly/customization/ ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

USER jboss ADD customization /opt/jboss/wildfly/customization/

CMD ["/opt/jboss/wildfly/customization/execute.sh"]

Imagen wiki

 * nombre contenedor
 * wiki


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/wiki:1.0.0


 * imagen base
 * php:5.6-apache


 * variables de entorno
 * MEDIAWIKI_DB_PASSWORD: t0MmcELLkDD
 * MEDIAWIKI_DB_USER: wiki_user
 * MEDIAWIKI_SITE_SERVER: http://abside.docker
 * MEDIAWIKI_DB_PORT: 3306
 * MEDIAWIKI_SITE_NAME: AbsideWiki
 * MEDIAWIKI_DB_HOST: mysql_wiki
 * MEDIAWIKI_DB_NAME: mediawiki
 * mapedo de puertos
 * puerto 8082 del host mapeado al puerto 80 del contenedor
 * puerto 8443 del host mapeado al puerto 443 del contenedor
 * volúmenes
 * No tiene

Dockerfile
FROM php:5.6-apache RUN docker-php-ext-install mysql

COPY php.ini /usr/local/etc/php/ COPY 000-default.conf /etc/apache2/sites-available/

COPY AbsideWiki.tar / RUN tar xvf /AbsideWiki.tar -C /var/www/html/ \ && rm /AbsideWiki.tar

ENTRYPOINT ["/bin/bash", "/wiki-dockerentry.sh"] CMD ["apache2-foreground"]

ENV TZ=Europe/Madrid RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY /wiki-dockerentry.sh / RUN chmod a+x /wiki-dockerentry.sh

Imagen wso2esb

 * nombre contenedor
 * wso2esb


 * nombre completo de la imagen
 * registry.gitlab.com/rsi/abside-in-a-box/wso2esb:1.0.0


 * imagen base
 * wso2/wso2base:latest


 * variables de entorno
 * WSO2_SERVER: wso2esb
 * PLATFORM: default
 * WSO2_SERVER_PROFILE: default
 * WSO2_ENVIRONMENT: dev
 * WSO2_SERVER_VERSION: 4.8.1
 * mapedo de puertos
 * puerto 8280 del host mapeado al puerto 8280 del contenedor
 * puerto 8243 del host mapeado al puerto 8243 del contenedor
 * puerto 9763 del host mapeado al puerto 9763 del contenedor
 * puerto 9443 del host mapeado al puerto 9443 del contenedor
 * volúmenes
 * No tiene

Dockerfile
#
 * 1) Copyright 2016 WSO2, Inc. (http://wso2.com)
 * 2) Licensed under the Apache License, Version 2.0 (the "License");
 * 3) you may not use this file except in compliance with the License.
 * 4) You may obtain a copy of the License at
 * 5) http://www.apache.org/licenses/LICENSE-2.0
 * 6) Unless required by applicable law or agreed to in writing, software
 * 7) distributed under the License is distributed on an "AS IS" BASIS,
 * 8) WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * 9) See the License for the specific language governing permissions and
 * 10) limitations under the License
 * 1) distributed under the License is distributed on an "AS IS" BASIS,
 * 2) WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * 3) See the License for the specific language governing permissions and
 * 4) limitations under the License



FROM wso2/wso2base:latest MAINTAINER dev@wso2.org

ENV DEBIAN_FRONTEND noninteractive

ARG WSO2_SERVER ARG WSO2_SERVER_VERSION ARG WSO2_SERVER_PROFILE ARG WSO2_ENVIRONMENT ARG PLATFORM
 * 1) Build time arguments

ENV WSO2_SERVER=${WSO2_SERVER:-wso2esb} \ WSO2_SERVER_VERSION=${WSO2_SERVER_VERSION:-4.9.0} \ WSO2_SERVER_PROFILE=${WSO2_SERVER_PROFILE:-default} \ WSO2_ENVIRONMENT=${WSO2_ENVIRONMENT:-dev} \ PLATFORM=${PLATFORM}
 * 1) Carbon server information


 * 1) Carbon server information

ADD packages/ /mnt/ ADD scripts/ /usr/local/bin/

RUN bash /usr/local/bin/image-config.sh
 * 1) Execute configuration script

USER wso2user WORKDIR /mnt

EXPOSE 8280 8243 9763 9443
 * 1) Expose transport ports

ENTRYPOINT ["/usr/local/bin/init.sh"]

Process finished with exit code 0