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

Criando um ambiente de desenvolvimento PHP com ...

Criando um ambiente de desenvolvimento PHP com Docker Compose

Nesta apresentação é visto uma pequena revisão sobre o que é Docker e Docker Compose, problemas de padronização de ambientes de desenvolvimento e possíveis soluções, vantagens da utilizar conteinerização, comparativo de Containers vs. VMs e a criação de um ambiente básico de desenvolvimento PHP com Docker Compose.

Fernando Silva

July 12, 2016
Tweet

More Decks by Fernando Silva

Other Decks in Programming

Transcript

  1. Sobre mim! Eu sou Fernando Silva Formado em Análise e

    Desenvolvimento de Sistemas pela Faculdade Senac Porto Alegre, desenvolvedor PHP na empresa e-Sales Soluções de Integração e membro da Comunidade PHPRS. Você pode encontrar-me em @FernandoDebrand.
  2. VISÃO GERAL 1 - O que é Docker? 2 -

    O que é Docker Compose? 3 - Problema de padronização 4 - Solução 5 - Conteinerização 6 - Containers vs. VMs. 7 - Criando um ambiente
  3. O QUE É DOCKER? Docker é uma plataforma Open Source

    que permite criar, executar, testar e implantar aplicativos distribuidos dentro de containers de software.
  4. O QUE É DOCKER COMPOSE? O Docker Compose é uma

    ferramenta para a criação e execução de múltiplos containers de aplicação. Com o Compose, você usa um arquivo do tipo yml para definir como será o ambiente de sua aplicação e usando um único comando você criará e iniciará todos os serviços definidos.
  5. SOLUÇÃO Virtualização - Vantagens: ∎ Mesma VM nos ambientes de

    DEV, HML e PRD ∎ Padronização de ambientes
  6. CONTEINERIZAÇÃO LXC - Linux Containers: ∎ Jul/2008 - Kernel 2.6.26

    + ∎ Compartilha kernel e libs com o host ∎ Isola processo nos Control Groups (CGroups) ∎ Difícil gerenciar
  7. CONTEINERIZAÇÃO Docker: ∎ Compartilhamento de imagens (Docker Hub) ∎ Receita

    para criação de container (Dockerfile) ∎ Camada de Api REST ∎ Inovando □ Docker Machine (Windows ou Mac) □ Docker Compose (multi-container) □ Docker Swarm (cluster)
  8. CRIANDO UM AMBIENTE Container de servidor web (Dockerfile): ∎ FROM

    php:5.6-apache ∎ RUN docker-php-ext-install mysqli
  9. CRIANDO UM AMBIENTE Container de servidor web (docker-compose.yml): ∎ php:

    ∎ build: ./Dockerfile ∎ ports: ∎ - "80:80" ∎ - "443:443" ∎ volumes: ∎ - ./www:/var/www/html
  10. CRIANDO UM AMBIENTE Container de banco de dados (docker-compose.yml): ∎

    db: ∎ image: mysql:5.7 ∎ volumes: ∎ - /var/lib/mysql ∎ environment: ∎ - MYSQL_ROOT_PASSWORD=phprs ∎ - MYSQL_DATABASE=phprs
  11. CRIANDO UM AMBIENTE Conectando os dois containers (docker-compose.yml): ∎ php:

    ∎ build: ./Dockerfile ∎ ports: ∎ - "80:80" ∎ - "443:443" ∎ volumes: ∎ - ./www:/var/www/html ∎ links: ∎ - db ∎ db: ∎ image: mysql:5.7 ∎ volumes: ∎ - /var/lib/mysql ∎ environment: ∎ - MYSQL_ROOT_PASSWORD=phprs ∎ - MYSQL_DATABASE=phprs
  12. OBRIGADO! Alguma pergunta? Você pode me encontrar em @FernandoDebrand. Participe

    da comunidade PHPRS. phprs.com.br rselephants @phprs phprs.slack.com meetup.com/php-rs