From b41aa4d8a483ebc3ee499d2fea2b055e98786572 Mon Sep 17 00:00:00 2001 From: nnydjesus Date: Tue, 26 Apr 2016 19:57:17 -0300 Subject: [PATCH] Tratando de modularizar el docker-compose. Se creo un script para correr la imagen y la idea es poder componer el docker file con una configuracion elegida. (usar mongo, redis o mysql por ejemplo) --- README.md | 21 +++++++++++++++---- docker/Dockerfile | 7 +++---- docker/docker-compose-mongodb.yml | 10 +++++++++ .../docker-compose-mysql.yml | 13 ------------ docker/docker-compose-redis.yml | 10 +++++++++ docker/docker-compose.yml | 7 +++++++ docker/run.sh | 3 --- docker_run.sh | 1 + 8 files changed, 48 insertions(+), 24 deletions(-) create mode 100644 docker/docker-compose-mongodb.yml rename docker-compose.yml => docker/docker-compose-mysql.yml (57%) create mode 100644 docker/docker-compose-redis.yml create mode 100644 docker/docker-compose.yml delete mode 100755 docker/run.sh create mode 100644 docker_run.sh diff --git a/README.md b/README.md index 843d9b2..af5f315 100644 --- a/README.md +++ b/README.md @@ -138,9 +138,9 @@ Si queremos utilizar mongo hay que configurar: ``` ### Redis -Estamos usando **Redis** como cache de algunos recursos. Todavia no esta muy bien definido hasta que tengamos mas avanzado el TP. +Estamos usando **Redis** como cache de algunos recursos. Todavia no esta muy bien definido hasta que tengamos mas avanzado el TP. Por ahora lo usamos en un solo servicio, el de precios. -Si no hay un servidor de redis, no pasa nada, se ignora la chaché y se ejecuta el código original. +Si no hay un servidor de redis, no pasa nada, se ignora la chaché y se ejecuta el código original. Es decir si no tenemos un servicio de Redis la aplicación sigue funcionando. Para utilizar Redis necesitamos configurar: @@ -157,6 +157,19 @@ Para utilizar Redis necesitamos configurar: ### Docker -Tenemos una imagen docker con las siguientes catacterísticas: -* Centos +Nuestra app corre en una imagen docker con las siguientes catacterísticas: +* Ubuntu 15.10 * Java 8 + +Estamos usando `docker-compose` para describir algunas dependencias de imágenes: + * MongoDB + * Mysql + * Redis + +Cada una de esas imágenes corre en un contenedor distinto que la app y se comunican por red. +Lo que falta de configurar es pasar las variables de entorno de nuestra app para configurar la base de datos a utilizar. + +Lo que no sabemos bien es si es mejor tener un contenedor por servicio o todos los servicios en el mismo contenedor/imagen. + + + diff --git a/docker/Dockerfile b/docker/Dockerfile index b15a567..dcbb302 100755 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,21 +2,20 @@ FROM beevelop/java ENV PORT 9200 ENV log_key 52dfdbf5-a0b6-42af-9153-104f21bfa394 -ENV fill_data false ENV redis_host redis ENV mongo_host mongo -ENV storage mysql +ENV storage transient + ENV mysql_url jdbc:mysql://mysql:3306/ ENV mysql_user careprices ENV mysql_pwd careprices ENV mysql_schema careprices -ADD run.sh /opt/ ADD carePrices.jar /opt/ -ENTRYPOINT ["sh","/opt/run.sh"] +ENTRYPOINT ["java", "-jar", "/opt/carePrices.jar"] diff --git a/docker/docker-compose-mongodb.yml b/docker/docker-compose-mongodb.yml new file mode 100644 index 0000000..54c7cd2 --- /dev/null +++ b/docker/docker-compose-mongodb.yml @@ -0,0 +1,10 @@ +version: '2' + +services: + careprices: + depends_on: + - mongo + mongo: + image: mongo:3.1 + ports: + - "27017:27017" diff --git a/docker-compose.yml b/docker/docker-compose-mysql.yml similarity index 57% rename from docker-compose.yml rename to docker/docker-compose-mysql.yml index 495647f..5893a9a 100644 --- a/docker-compose.yml +++ b/docker/docker-compose-mysql.yml @@ -2,21 +2,8 @@ version: '2' services: careprices: - build: docker - ports: - - "9200:9200" depends_on: - - redis - - mongo - mysql - redis: - image: redis - ports: - - "6379:6379" - mongo: - image: mongo:3.1 - ports: - - "27017:27017" mysql: image: mysql ports: diff --git a/docker/docker-compose-redis.yml b/docker/docker-compose-redis.yml new file mode 100644 index 0000000..c6bfe6c --- /dev/null +++ b/docker/docker-compose-redis.yml @@ -0,0 +1,10 @@ +version: '2' + +services: + careprices: + depends_on: + - redis + redis: + image: redis + ports: + - "6379:6379" diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..2848f5b --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,7 @@ +version: '2' + +services: + careprices: + build: . + ports: + - "9200:9200" diff --git a/docker/run.sh b/docker/run.sh deleted file mode 100755 index b90c9a5..0000000 --- a/docker/run.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "** Starting careprices...." - -java -jar /opt/carePrices.jar \ No newline at end of file diff --git a/docker_run.sh b/docker_run.sh new file mode 100644 index 0000000..1fdd20f --- /dev/null +++ b/docker_run.sh @@ -0,0 +1 @@ +docker-compose -f docker/docker-compose.yml -f docker/docker-compose-mysql.yml -f docker/docker-compose-redis.yml -f docker/docker-compose-mongodb.yml up --build