Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Conteinerizando suas aplicações python

Conteinerizando suas aplicações python

Hudson Brendon

December 12, 2015
Tweet

More Decks by Hudson Brendon

Other Decks in Programming

Transcript

  1. • Fácil de começar a desenvolver; • Você pode usar

    em Windows, Linux ou Mac • Se funciona na sua máquina: ◦ vai funcionar na máquina de todos; ◦ vai passar no build e vai funcionar em produção; • Fácil de montar o ambiente; • Fácil de estruturar a arquitetura; • Sem conflito entre diferentes projetos; • Rápido, Muito, muito, muito rápido.
  2. • Fácil de colocar em produção; • É trivial montar

    ambientes padronizados para desenvolvimento, e produção; • Se passou na build vai funcionar em produção; • É fácil escalar; • É fácil dar prioridade para uma aplicação sobre outra; • Permite aumentar a densidade de uma máquina.
  3. • Disponível em github.com/docker; • Apache2 (permissiva, você detem uma

    licença para fazer oque quiser); • Escrito em Go; • Monetização atravéz de serviços adicionais opcionais e que você pode contribuir por conta própria se quiser; • 1200+ contribuidores; • Diversos projetos adicionais (composer, libcontainer, swarm, etc).
  4. • É o “código fonte” de uma imagem; • É

    uma maneira de criar imagens, é a melhor maneira; • Fácil de saber o que há em uma imagem: leia o Dockerfile; • Você indica a imagem pai, arquivos para adicionar, comandos para rodar ao criar a imagem, o comando que vai rodar a imagem em si, etc; • Compilado com ‘docker build’; • .dockerignore.
  5. Um Dockerfile FROM ubuntu:14.04 MAINTAINER Hudson Brendon <[email protected]> # pip

    requirements ADD /requirements/requirements.txt /home/requirements/requirements.txt # update e upgrade RUN apt-get -yq update && apt-get -yq upgrade # enstall pre-requisites RUN apt-get -yq install build-essential python-pip python-dev git vim # pip install packages RUN pip install -r /home/requirements/requirements.txt # expose the port EXPOSE 8000 CMD ["/bin/bash"]