Executando uma stack WordPress com Docker e Docker Compose

Spread the love

Fala pessoal beleza!

No post anterior nós configuramos uma stack WordPress e MySQL com o Docker e o Docker Compose. Nesse post nós iremos executar essa stack. Se você conferiu o post anterior então certamente tem um arquivo docker-compose.yml igual ao código abaixo.

version: '3.4'
services:
  db:
    image: mysql:5.7.22
    command: mysqld --default_authentication_plugin=mysql_native_password
    environment:
      TZ: America/Sao_Paulo
      MYSQL_ROOT_PASSWORD: docker
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      MYSQL_DATABASE: wordpress
    ports:
      - 3308:3306;
    networks:
      - wordpress-network

  wordpress:
    image: wordpress:latest
    volumes:
      - ./config/php.conf.uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
      - ./wp-app:/var/www/html
    environment:
      TZ: America/Sao_Paulo
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: docker
    ports:
      - 80:80
    networks:
      - wordpress-network

networks:
    wordpress-network:
      driver: bridge

Agora vamos acessar o diretório desse arquivo e abrir o terminal (se não for no mesmo diretório do arquivo não irá funcionar). Com o terminal aberto digite o comando docker-compose up -d para que o Docker Compose inicialize a stack. O parâmetro -d é opcional e é usado para que o Docker Compose inicie de modo detachado e libere o terminal pra que possamos continuar usando. Esse processo pode levar alguns minutos já que ele irá baixar as Docker images e inicializar os contêineres, algo que pode demorar dependendo da sua internet e de seu hardware. Se tudo correr bem então a saída no terminal deve ser similar à abaixo:

root@leandro:/home/leandro# docker-compose up -d

Creating network "1306networksindockercompose_wordpress-network" with driver "bridge"
Pulling db (mysql:5.7.22)...
5.7.22: Pulling from library/mysql
be8881be8156: Pull complete
c3995dabd1d7: Pull complete
9931fdda3586: Pull complete
bb1b6b6eff6a: Pull complete
a65f125fa718: Pull complete
2d9f8dd09be2: Pull complete
37b912cb2afe: Pull complete
79592d21cb7f: Pull complete
00bfe968d82d: Pull complete
79cf546d4770: Pull complete
2b3c2e6bacee: Pull complete
Digest: sha256:aaba540cdd9313645d892f4f20573e8b42b30e5be71c054b7befed2f7da5f85b
Status: Downloaded newer image for mysql:5.7.22
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
b4d181a07f80: Pull complete
78b85dd8f014: Pull complete
8589b26a90be: Pull complete
f5af5d641946: Pull complete
614ec6f0b8d6: Pull complete
12b28f3797fb: Pull complete
96bcb7d2e6b0: Pull complete
09a46dfaa772: Pull complete
1a85b508a14e: Pull complete
c6fd9c89235a: Pull complete
40b955b2d455: Pull complete
fda03b9af7e2: Pull complete
570ea029c915: Pull complete
a3f5858f9e8b: Pull complete
e563e5b2630b: Pull complete
10499c79181c: Pull complete
7180626436df: Pull complete
72df520dac82: Pull complete
ed2d407056b5: Pull complete
7224b35f0930: Pull complete
7bf10a169530: Pull complete
Digest: sha256:0a2b70369b24a45802e33d5870638bac3c7f289dfcb0d0a9b6e9990c0a217c27
Status: Downloaded newer image for wordpress:latest
Creating 1306networksindockercompose_db_1 ... done
Creating 1306networksindockercompose_wordpress_1 ... done
root@leandro:/home/leandro#

Podemos ir direto ao navegador e conferir se tudo deu certo, mas antes vamos conhecer o comando docker-compose ps que lista os contêineres da stack em execução. Um detalhe fundamental é que todos os comandos do Docker compose precisam ser executados no mesmo diretório em que está o arquivo docker-compose.yml ou não funcionará. Se tudo tiver sido executado com sucesso você terá uma saída no terminal similar à mostrada abaixo:

root@leandro:/home/leandro# docker-compose ps
                 Name                                Command               State                    Ports
---------------------------------------------------------------------------------------------------------------------------
1306networksindockercompose_db_1          docker-entrypoint.sh mysql ...   Up      0.0.0.0:3308->3306/tcp,:::3308->3306/tcp
1306networksindockercompose_wordpress_1   docker-entrypoint.sh apach ...   Up      0.0.0.0:80->80/tcp,:::80->80/tcp
root@leandro:/home/leandro#

Se o estado contêiner for igual a up então significa que está funcionando. Agora vamos ao browser no endereço http://localhost/, você provavelmente verá uma imagem similar a abaixo:

Pronto subimos uma stack com WordPress e MySQL usando o Docker Compose. Se você prosseguir verá que é uma instalação e configuração de um blog exatamente igual ao WordPress tradicional. Agora vamos conhecer o comando docker-compose down responsável por interromper a stack inteira. No nosso exemplo isso não fica muito evidente, mas imagine interromper uma stack com dezenas de contêineres usando o comando docker stop. Não preciso nem dizer que é praticamente inviável e é exatamente por isso que existe o comando docker-compose down. Dito isto vamos encerrar a nossa stack, pra isso digite o comando docker-compose down:

root@leandro:/home/leandro# docker-compose down
Stopping 1306networksindockercompose_wordpress_1 ... done
Stopping 1306networksindockercompose_db_1        ... done
Removing 1306networksindockercompose_wordpress_1 ... done
Removing 1306networksindockercompose_db_1        ... done
Removing network 1306networksindockercompose_wordpress-network
root@leandro:/home/leandro#
Se tudo correr bem você verá uma saída similar à acima. Note que além de parar os contêineres o Docker Compose também interrompe a rede. Bom por esse post é isso e se você quer se tornar um verdadeiro ninja Docker e conhecer mais sobre Docker e Docker Compose eu recomendo baixar o meu e-Book gratuito Docker um guia Rápido e dar uma conferida numa playlist sobre o tema no meu canal no Youtube.


Baixe o Guia Docker grátis


Bom por esse post é isso a gente se vê no próximo post!!!

Treinamentos relacionados com este post












Leandro

Sou desenvolvedor de software a desde 2008, além de programar gosto de esportes de aventura como rapel, tirolesa, trilhas de bike, apreciador de cervejas, baladas, motos e do bom e velho Rock’n Roll também gosto de história, ficção científica e de tecnologia. Atualmente sou consultor de Agile Software Delivery na Erudio Training e instrutor na Udemy.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *