Docker Fundamentals

Victor Aguilar

http://victoraguilar.net

victor@xiberty.com

Victor Aguilar C

victor@xiberty.com

Soy desarrollador fullstack y fundador de xiberty en donde construimos aplicaciones web, móviles (android e ios) y chatbots.

 

El Proyecto

Es una solución (tecnológica) a los requerimientos que nacen de un problema

Desarrollador

Operaciones

Developer + Operations = DevOps

Proyectos hay de todo

El Problema 1

Encontrar una manera ágil, portable e interoperable forma de manejar entornos de desarrollo

PROYECTO

THE GOOD PARTS

Modelos

Vistas

Plantillas

CLI

Configuración

Integración

¿Como es el desarrollo tradicional?

era

Proyecto

OTHER SERVICE

Requerimiento 1

POSTGRES

REDIS

Requerimiento 2

Requerimiento 3

Requerimiento 4

Servidor todo en uno

OTHER SERVICE

DJANGO

POSTGRES

REDIS

El Problema 2

Toma mucho tiempo configurar un proyecto.

Servidor(virtualizado) todo en uno

OTHER SERVICE

DJANGO

POSTGRES

REDIS

Dev1

Dev2

Dev0

Common

Es una herramienta para crear, configurar y reproducir entornos de desarrollo "ligeros" y portables

¿Vagrant?

El problema de usar vagrant para administrar tus entornos de desarrollo siempre ha sido...

VAGRANT SE ESTA CHINGANDO

MIS RECURSOS

El Problema 3

Es costoso en términos de recursos tener entornos totalmente aislados en desarrollo y no son flexibles en producción.

Es una plataforma abierta para construir, ejecutar y distribuir aplicaciones.

Es básicamente una herramienta para empaquetar tus proyectos en pequeñas cajas que funcionan por si solas o en conjunto

Mi Aplicación

Mi Server

Yo

DOCKER

THE GOOD PARTS

Dockerfile

Compose

Tools

PORFIS UN  DEMO

Dockerizando una aplicación

BLOG PERSONAL 

SEGURO QUE ALGUNA VEZ QUISISTE HACER TU

TE CUENTO QUE YO TAMBIÉN

BitBlog

Es un blog personal  escrito en Django/Wagtail, con la particularidad de que está orientado a desarrolladores

Dockerizando mi blog ando

PROYECTO DJANGO

COMO SERVICIOS

NGINX

DJANGO

POSTGRES

REDIS

WEBSERVER
APP
DATABASE ENGINE
CACHE SERVER
DATA

OTHER SERVER

OTHER SERVICE

Dockerizando

  1. Seleccionar una imagen
  2. Instalar lo que se necesite para el propósito de la imagen
  3. Provisionar el comando por defecto si se requiere
  4. Exponer los puertos necesarios
  5. Vincular con los contenedores necesarios

DJANGO

FROM python:3.5

ENV PYTHONUNBUFFERED 1

COPY ./requirements /requirements
RUN pip install -r /requirements/local.txt

COPY ./compose/django/entrypoint.sh /entrypoint.sh
RUN sed -i 's/\r//' /entrypoint.sh
RUN chmod +x /entrypoint.sh

COPY ./compose/django/start-dev.sh /start-dev.sh
RUN sed -i 's/\r//' /start-dev.sh
RUN chmod +x /start-dev.sh

WORKDIR /app

ENTRYPOINT ["/entrypoint.sh"]

Dockerfile

POSTGRES

FROM postgres:9.6


ADD backup.sh /usr/local/bin/backup
ADD restore.sh /usr/local/bin/restore
ADD list-backups.sh /usr/local/bin/list-backups


RUN chmod +x /usr/local/bin/restore
RUN chmod +x /usr/local/bin/list-backups
RUN chmod +x /usr/local/bin/backup

Dockerfile

MAILHOG

FROM mailhog:latest

 

Dockerfile

Se aceptan contribuciones

Enlaces de interes  

Esta presentación: slides.com/vicobits/docker-lite

¿Preguntas?

Docker Fundamentals

By Victor Aguilar

Docker Fundamentals

Dockerizando un app Django para entornos de desarrollo

  • 279