Esse projeto visa ampliar seu conhecimento em administração de sistemas usando Docker.
Você vai virtualizar diversas imagens Docker, criando Docker Containers em sua nova máquina virtual.
One container is not enogh. We need to go deeper
Nesse projeto temos que criar uma pequena infraestrutura composta de diferentes serviços, seguindo regras específicas:
REGRAS GERAIS
• Usar docker-compose;
• Cada imagem Docker tem que ter o nome igual ao de seu serviço;
• Cada serviço tem que rodar em seu próprio container;
• Os containers tem que ser construídos a partir da penúltima versão estável de Debian ou Alpine;
• Escrever nossos próprios Dockerfiles;
• Chamar os Dockerfiles através do docker-compose.yml que, por sua vez, é chamado pelo Makefile;
• Nenhuma credencial deve estar exposta fora do arquivo .env!!!!!!!!!!!!
REGRAS INFRAESTRUTURA
• Um container com NGINX usando apenas o protocolo TLSv1.2 ou TLSv1.3;
• Um container com WordPress + php-fpm, sem NGINX;
• Um container com MariaDB, sem NGINX;
• Um volume com a base de dados do WordPress;
• Um segundo volume com os arquivos do site do WordPress;
• Uma docker-network que estabelece a conexão entre os containers.
💾 MARIADB: Banco de dados, necessário para a instalação do Wordpress (os requisitos são PHP e um banco MySQL já instalados e configurados). Precisamos intalar,
fazer uma pequena configuração e criar a tabela que o Wordpress vai usar.
🌐 WORDPRESS: Nosso site! Ele precisa de um banco de dados e php instalados para conseguir ser usado. Também precisa já estar instalado quando subirmos o container,
para isso, usaremos wp-cli.
🔒 NGINX: Nosso servidor de HTTP e proxy. Vai ser nossa porta de entrada para a infraestrutura que estamos criando. Ele vai lidar com o protocolo de acesso ao nosso site.
Em um computador com Docker instalado, crie um arquivo .env dentro da pasta srcs e dê make!
Pronto, você deve ter um site Wordpress rodando no seu localhost:443. Acesse seu navegador e teste o projeto 😉.
No arquivo .env criado, modifique o nome dessas variáveis que deve tudo rodar normalmente:
# MariaDB Access
WORDPRESS_DB_HOST=XXXXXXX #Aqui precisa ser necessariamente "mariadb"
WORDPRESS_DB_NAME=XXXXXXX
WORDPRESS_DB_USER=XXXXXXX
WORDPRESS_DB_PASSWORD=XXXXXXX
# Wordpress Access
WORDPRESS_URL=XXXXXXX
WORDPRESS_ADMIN_USER=XXXXXXX
WORDPRESS_ADMIN_PASSWORD=XXXXXXX
WORDPRESS_ADMIN_EMAIL=XXXXXXX@XXXXXXX
WORDPRESS_GUEST_USER=XXXXXXX
WORDPRESS_GUEST_PASSWORD=XXXXXXX
WORDPRESS_GUEST_EMAIL=XXXXXXX@XXXXXXX
# Certs
CERTS_=/etc/ssl/certs/XXXXXXX.crt
CERTS_KEY=/etc/ssl/private/XXXXXXX.key