Skip to content

Instantly share code, notes, and snippets.

@drog
Last active December 12, 2017 14:18
Show Gist options
  • Save drog/16c24c6490b8aff32df841f7c79ba29f to your computer and use it in GitHub Desktop.
Save drog/16c24c6490b8aff32df841f7c79ba29f to your computer and use it in GitHub Desktop.
DCM4chee Configuration

Prueba de conceptos de DCM4chee con Docker

Que es docker?

La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo, facilitando así también los despliegues.

Un contenedor no es lo mismo que una máquina virtual. Un contenedor es más ligero, es simplemente un proceso que corre en la maquina host. Mientras que a una máquina virtual necesitas instalar un sistema operativo para funcionar, un contenedor de Docker funciona utilizando el sistema operativo que tiene la máquina en la que se ejecuta el contenedor. El concepto de portabilidad de un contenedor de Docker es algo similar a la máquina virtual de Java.

Links de la documentacion

https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker

https://github.com/dcm4che/dcm4chee-arc-light/wiki/Run-minimum-set-of-archive-services-on-a-single-host

Videos sobre docker

Como visa implemento Docker en su infra-estructura facilitando todo el ciclo de desarrollo https://www.youtube.com/watch?v=Wt9TnN3ua_Y

Configuracion previa

Docker corre sobre el kernel de linux, por lo que su instalacion en linux y windows 10 es facil y rapida teniendo en consideracion que Windows 10 tiene incluido el kernel de linux en su infraestructura

Con windows 10 debes bajar docker desde aqui

Con windows 7 debes bajar docker desde aqui

Debido a que windows 7 no tiene el kernel de linux. Docker toolbox viene preconfigurado con virtualbox para realizar la emulacion. Dentro de docker toolbox viene todo configurado. No es necesario realizar pasos adicionales

Hay que realizar una serie de configuraciones adicionales debido al firewall corporativo. Para mayor informacion leer la wiki de docker de problemas comunes

$ set http_proxy=http://user:password@10.214.8.100:8080
$ set https_proxy=https://user:password@10.214.8.100:8080

$ docker-machine create -d virtualbox --engine-env HTTP_PROXY=http://user:password@10.214.8.100:8080 --engine-env HTTPS_PROXY=https://user:password@10.214.8.100:8080 default

Para realizar pruebas por comando se ejecuta el Docker QuickStart Terminal, o Kitematic el cual contiene la interfaz grafica.

Paso a paso

Se realizaron pruebas con docker compose y la siguiente guia

  1. Se configuro el docker-compose.yml
  2. Se configuraron las variables de entorno en docker-compose.env
  3. Se ejecuto el container con el siguiente comando docker-compose -p dcm4chee up -d

Analisis de los contenedores

Se tienen 3 contenedores configurados a traves de docker-compose. Docker compose permite ejecutar varios contenedores simultaneamente.

  1. slapd-dcm4chee:2.4.44-11.0 Contiene la configuracion de ldap para dcm4chee. Expone el puerto 389
  2. dcm4che/postgres-dcm4chee:10.0-11 Contiene la configuracion de la base de datos para dcm4chee. Expone el puerto 5432
  3. dcm4che/dcm4chee-arc-psql:5.11.0 Contiene la configuracion de WildFly (anteriormente JBoss) para dcm4chee. Expone el puerto 8080

Analisis docker-compose

version: "3"
services:  ### declaracion del contenedor
  ldap:    ### nombre del contenedor
    image: dcm4che/slapd-dcm4chee:2.4.44-11.0 ### repositorio y proyecto del contenedor, :x.x-y indica la version del proyecto
    logging:
      driver: json-file
      options:
        max-size: "10m"
    ports:
      - "389:389"   ### indica el puerto en cual se exponera el puerto donde aplica el siguiente orden HOST:CONTAINER
    env_file: docker-compose.env
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/local/dcm4chee-arc/ldap:/var/lib/ldap
      - /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d
  db:
    image: dcm4che/postgres-dcm4chee:10.0-11
    logging:
      driver: json-file
      options:
        max-size: "10m"
    ports:
      - "7432:5432"
    env_file: docker-compose.env
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/local/dcm4chee-arc/db:/var/lib/postgresql/data
  arc:
    image: dcm4che/dcm4chee-arc-psql:5.11.0
    logging:
      driver: json-file
      options:
        max-size: "10m"
    ports:
      - "8080:8080"
      - "8443:8443"
      - "9990:9990"
      - "11112:11112"
      - "2575:2575"
    env_file: docker-compose.env
    environment:
      WILDFLY_CHOWN: /opt/wildfly/standalone /storage
      WILDFLY_WAIT_FOR: ldap:389 db:5432
    depends_on:
      - ldap
      - db
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone
      - /var/local/dcm4chee-arc/storage:/storage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment