Skip to content

Desplegar el entorno de desarrollo

VictorCoronas edited this page Dec 17, 2014 · 21 revisions

Introducción a Docker

¿Que es docker y dockerhub?

La definición oficial traducida textualmente es algo así: Docker es una plataforma Open Source para que desarrolladores y Sysadmins puedan construir, cargar, y ejecutar aplicaciones. Consiste en un entorno de ejecución ligero, portable y herramientas de empaquetado […] como resultado se puede implementar más rápido y ejecutar la misma aplicación sin cambios tanto en portátiles, Centros de Datos o máquinas virtuales de cualquier Cloud.

Resumiendo un poco esto, Docker es una tecnología de contenedores que nos permite una virtualización ligera para empaquetar entornos, la configuración del sistema y aplicaciones, que posteriormente podremos desplegar en cualquier otro sistema compatible con este tipo de tecnología.

Nosotros usamos Docker, porque nos permite tener una imagen actualizada con todo lo necesario para comenzar a desarrollar en Google App Engine, con Evenge.

Ventajas que nos ofrece Docker

  • Es el más ligero.
  • Son los contenedores para virtualización con mejor rendimiento.
  • Son compatibles con una gran variedad de sistemas operativos.
  • Tiene una manera muy sencilla de poder instalarse.
  • Una ventaja muy importante, es que podemos usar contenedores ya creados por otras personas.

Entorno de desarrollo

¿Que tendremos una vez instalado?

Con descargar y ejecutar el contenedor con el Docker, ya tenemos:

  • Ubuntu 14.04
  • Python y todas las tools necesarias
  • Jinja y WebApp2 para la ejecución en local de nuestro servidor de pruebas
  • Nuestro SDK de Google App Engine configurado con nuestro proyecto Evenge que lanzará nuestro servidor de pruebas y su sistema de integración continua ya incorporado en la aplicación.
  • El repositorio Git clonado y con una rama con el nombre de usuario para empezar a trabajar.

En resumen, todo lo necesario para empezar a colaborar con el proyecto.

¿Como instalar el entorno de desarrollo para Evenge?

  1. Clonamos nuestro repositorio de Github
  2. Entramos en la carpeta despliege y ejecutamos en modo root el script EvengeSDK.sh. Esto instalará:
    1. Docker y las dependencias necesarias para su funcionamiento

apt-get update apt-get install -y docker.io source /etc/bash_completion.d/docker.io [ -e /usr/lib/apt/methods/https ] || { apt-get update apt-get install -y apt-transport-https } apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 sh -c "echo deb https://get.docker.com/ubuntu docker main\

/etc/apt/sources.list.d/docker.list" apt-get update apt-get install -y lxc-docker

    2. La imagen producida con el Dockerfile y ya subida a [DockerHub](https://registry.hub.docker.com/u/ivanortegaalba/evenge/)
    ```
docker pull ivanortegaalba/evenge
docker run -t -i ivanortegaalba/evenge /bin/bash
    ```
3. Arrancará directamente el Docker con nuestra imagen, y... ¡A colaborar!

## ¿Como hemos creado el Docker? Los Dockerfiles
Nuestro Docker ha sido creado a partir de un archivo con las instrucciones necesarias para que Docker sepa que ha de instalar en nuestro contenedor, y basandose en que imagen. Nosotros hemos usado ubuntu en su última versión y hemos instalado los siguientes programas:
[Dockerfile](https://github.com/evenge/EVENGE/blob/master/despliegue/Dockerfile)

FROM ubuntu:latest MAINTAINER Evenge [email protected]

#Instala dependencias de python RUN apt-get update && apt-get install -y python RUN apt-get install -y python-setuptools RUN easy_install pip RUN apt-get install -y python-dev build-essential

#Instala frameworks RUN pip install webapp2 RUN pip install jinja2

Instala wget para descarga

RUN apt-get install -y wget

Descargamos el sdk de Google App Engine

RUN wget https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.17.zip --no-check-certificate

Instalamos zip

RUN apt-get install -y zip

Descomprimimos el fichero descargado, ya tendremos disponible el SDK

RUN unzip google_appengine_1.9.17.zip

#Instalamos el google-cloud-sdk y configuramos el proyecto Evenge

RUN curl -sSL https://sdk.cloud.google.com | bash

RUN gcloud auth login

RUN gcloud config set project

Instalamos git y clonamos el repositorio de Evenge

RUN apt-get install -y git RUN git clone https://github.com/evenge/EVENGE.git RUN cd EVENGE RUN git branch -b $USER

#La integración continua corre de la mano de GAE, donde el SDK nos permite despliegue y pruebas en local

[Aquí tenemos una referencia de como construir Dockerfiles](https://docs.docker.com/reference/builder/)
Una captura del DockerHub

![docker](http://i59.tinypic.com/35mp028.png)

[Enlace al repositorio de DockerHub](https://registry.hub.docker.com/u/ivanortegaalba/evenge/)