Pular para o conteúdo
Início » Criando uma aplicação LAMP usando o Docker + WordPress

Criando uma aplicação LAMP usando o Docker + WordPress

O Docker é uma plataforma de virtualização de containers, que permite executar aplicações em ambientes isolados, sem interferir no sistema operacional do host. Com o Docker, é possível criar, distribuir e executar containers de forma rápida e fácil, em qualquer plataforma.

O Docker é baseado em três componentes principais: o Docker Engine, o Docker Hub e o Docker Compose. O Docker Engine é o núcleo da plataforma, responsável por executar e gerenciar os containers. O Docker Hub é um repositório público de imagens de containers, onde é possível encontrar imagens prontas para uso ou publicar suas próprias imagens. O Docker Compose é uma ferramenta para definir e executar aplicativos multi-container.

Para começar a usar o Docker, é necessário instalar o Docker Engine no host. O Docker Engine está disponível para diversas plataformas, incluindo Linux, macOS e Windows. Após a instalação, é possível criar e executar containers a partir de imagens disponíveis no Docker Hub.

Para criar uma aplicação LAMP com WordPress utilizando o Docker, é necessário criar um Dockerfile que define a imagem do container a ser criado. O Dockerfile é um arquivo de texto que contém instruções para a criação da imagem. No exemplo a seguir, vamos criar uma imagem com o Apache, o PHP e o MySQL, e instalar o WordPress:

FROM php:7.4-apache

RUN apt-get update && \
    apt-get install -y \
        libjpeg-dev \
        libpng-dev \
        libxml2-dev \
        libzip-dev \
        unzip \
        wget \
        mysql-client && \
    docker-php-ext-configure gd --with-jpeg && \
    docker-php-ext-install gd mysqli pdo pdo_mysql zip soap

RUN a2enmod rewrite && \
    service apache2 restart

RUN wget https://wordpress.org/latest.tar.gz && \
    tar -xzvf latest.tar.gz && \
    mv wordpress/* /var/www/html/ && \
    chown -R www-data:www-data /var/www/html/ && \
    rm -rf latest.tar.gz wordpress

ENV MYSQL_ROOT_PASSWORD=root \
    MYSQL_DATABASE=wordpress \
    MYSQL_USER=wordpress \
    MYSQL_PASSWORD=wordpress

COPY ./wordpress.sql /docker-entrypoint-initdb.d/

O Dockerfile começa com a instrução FROM, que define a imagem base da qual a imagem será criada. Neste caso, estamos utilizando a imagem php:7.4-apache, que já contém o Apache e o PHP instalados.

As instruções seguintes instalam algumas dependências necessárias para o WordPress, como as bibliotecas GD, mysqli, pdo e pdo_mysql, e o pacote mysql-client. Também é habilitado o módulo rewrite do Apache, necessário para permitir a reescrita de URLs, e é reiniciado o serviço do Apache.

A seguir, é baixado e instalado o WordPress. O arquivo latest.tar.gz é baixado a partir do site oficial do WordPress e descompactado na pasta /var/www/html/. Em seguida, é alterado o proprietário da pasta para o usuário www-data, que é o usuário padrão do Apache.

Por fim, é definida a variável de ambiente MYSQL_ROOT_PASSWORD, que define a senha do usuário root do MySQL, e copiado o arquivo wordpress.sql para a pasta /docker-entrypoint-initdb.d/. Este arquivo contém o script SQL para criar o banco de dados do WordPress.

Após criar o Dockerfile, é necessário construir a imagem do container. Para isso, basta executar o seguinte comando no diretório onde o Dockerfile está salvo:

docker build -t nome-da-imagem .

O comando docker build cria uma nova imagem a partir do Dockerfile, e a opção -t define um nome para a imagem. O ponto final indica que o contexto de construção é o diretório atual.

Após a construção da imagem, é possível executar o container a partir dela. Para isso, é necessário definir algumas variáveis de ambiente, como a porta a ser utilizada pelo Apache e as configurações do MySQL:

docker run -d --name nome-do-container \
    -p 8080:80 \
    -e MYSQL_ROOT_PASSWORD=root \
    -e MYSQL_DATABASE=wordpress \
    -e MYSQL_USER=wordpress \
    -e MYSQL_PASSWORD=wordpress \
    nome-da-imagem

O comando docker run cria um novo container a partir da imagem, e a opção -d indica que o container será executado em segundo plano. A opção –name define um nome para o container.

A opção -p define a porta do host que será mapeada para a porta do container. Neste exemplo, a porta 8080 do host é mapeada para a porta 80 do container.

As opções -e definem as variáveis de ambiente para o container, que são utilizadas para configurar o MySQL.

Por fim, é passado o nome da imagem para criar o container a partir dela.

Após a execução do container, é possível acessar o WordPress pelo navegador, digitando o endereço http://localhost:8080 na barra de endereço. O WordPress irá solicitar a configuração inicial do banco de dados, e após isso é possível começar a utilizar a aplicação.

Em resumo, o Docker é uma plataforma de virtualização de containers que permite criar, distribuir e executar aplicações em ambientes isolados. Utilizando o Docker, é possível criar imagens de containers a partir de arquivos Dockerfile, e executar containers a partir dessas imagens. No exemplo apresentado, criamos uma imagem com o Apache, o PHP e o MySQL, e instalamos o WordPress. Após construir a imagem, criamos um container a partir dela, mapeando a porta do host para a porta do container. Com isso, foi possível acessar o WordPress pelo navegador e começar a utilizar a aplicação. O Docker é uma ferramenta poderosa para desenvolvedores e administradores de sistemas, que facilita a criação e distribuição de aplicações em qualquer plataforma.

Marcações: