Séria Aplicações CodeIgniter no Docker

Docker e CodeIgniter: como iniciar uma aplicação

Esse é o primeiro post da nossa série sobre Docker e CodeIgniter, e antes de iniciarmos o primeiro tutorial, vejamos como o conteúdo será abordado durante a série:

  • Não entraremos em detalhes específicos sobre Docker, por exemplo, como é feita a instalação
  • Sempre que alguma abordagem do Docker precisar de mais detalhes, vamos fazer referência a posts relacionados ao conteúdo

Introdução

Para quem não conhece o Docker é uma plataforma capaz de facilitar o processo de criação e gerenciamento de ambientes isolados. Não é como a virtualização tradicional, pois ele não faz uso de um sistema operacional completo, e sim de recursos isolados que fazem uso de bibliotecas do kernel que são comuns entre o host e o container.

Com o Docker você pode empacotar toda a sua aplicação e/ou ambiente em um único container e então utilizá-lo em qualquer outro host com suporte a Docker.

Para mais detalhes sobre o que é o Docker, clique aqui.

Nesse tutorial veremos como criar uma container Docker com PHP 7, NGINX e MySQL e fazer uma instalação do CodeIgniter utilizando o Composer diretamente em um container, sem a necessidade de ter um ambiente de desenvolvimento instalado por completo em sua máquina.

Se você ainda não tem o Docker instalado, clique aqui e veja como fazer a instalação.

Criando o container

Para criar o nosso primeiro container faremos uso do Docker Compose, que é capaz de executar todo o processo de configuração do container.

A partir de um arquivo YML com instruções de configuração é possível criar o container fazendo uso de imagens já existentes, agilizando assim o processo.

Para esse tutorial vamos utilizar a imagem PHP7+NGINX, que já possui as configurações necessárias para iniciarmos a série, onde faremos a instalação do CodeIgniter em um container Docker.

No Git do Universidade CodeIgniter já tem um repositório que irá armazenar todos os arquivos da série, separados por diretórios. Faça o download ou clone o repositório e então acesse o diretório tutorial-1, que é onde está localizado o arquivo do Docker Compose que será utilizado nesse tutorial.

O clone do repositório pode ser feito utilizando o comando a seguir:

git clone https://github.com/universidadecodeigniter/serie-docker-codeigniter.git

Feito o download ou clone do repositório, você terá um diretório com um arquivo docker-compose.yml. Acesse esse diretório pelo terminal para poder executar o comando do Docker Compose responsável por executar todo o processo de download da imagem e criação do container.

docker-compose up -d

A execução completa do comando pode demorar um pouco, pois caso não tenha a imagem em seu hd será necessário fazer o download da mesma.

Além do arquivo docker-compose.yml você terá um arquivo .env e um diretório src.

O diretório src é onde estará o código da sua aplicação e no caso desse tutorial, toda a estrutura do CodeIgniter.

Entendendo o arquivo docker-compose.yml

A seguir você tem o conteúdo do arquivo docker-compose.yml e em seguida algumas informações sobre pontos essenciais da sua estrutura.

Para complementar o arquivo docker-compose.yml é utilizado um arquivo .env com as variáveis de ambiente, que nesse caso definem o nome da aplicação e as portas a serem utilizadas.

O arquivo .env está junto do arquivo docker-compose.yml no repositório clonado e tem a seguinte estrutura:

APP_NAME=serie-codeigniter-docker-1
HTTP_PORT=8080
HTTPS_PORT=443

Para mais detalhes sobre o Docker Compose, clique aqui.

Após criado o container, você irá acessá-lo através do browser utilizando a porta 8080. Sendo assim você teria a seguinte url: http://localhost:8080.

Correndo tudo bem durante o processo de criação do container, você deverá ter o seguinte resultado no browser:

Informações do PHP e NGINX

 

Instalando o CodeIgniter no container

Com o container rodando, agora é hora de instalar o CodeIgniter nele, e para isso será utilizado o Composer.

Você pode fazer a instalação através da sua máquina, como já está acostumado a fazer, ou então pode utilizar um container para executar o processo de instalação e depois encerrar este container.

O método de instalação utilizando um container é útil para o caso de você estar em uma máquina onde não possui um ambiente de desenvolvimento configurado, então basta instalar o Docker e utilizar um container para executar a instalação.

Antes de instalar o CodeIgniter, remova os arquivos que estão no diretório src, pois a instalação só será executada caso o diretório esteja vazio.

Ainda no terminal execute o comando a seguir para criar um container, executar a instalação do CodeIgniter via Composer, e em seguida encerrar o container.

docker run -it --rm \
           -v $(pwd)/src:/var/www/src \
           -w /var/www/src \
           jlamim/php7-nginx \
           composer create-project bcit-ci/codeigniter .

Concluída a instalação, reinicie o Docker Compose através do comando a seguir para garantir que o compartilhamento dos arquivos seja feito corretamente.

docker-compose restart

Reiniciado o Docker Compose, Volte ao browser e atualize a página que até então exibia as informações do ambiente. Você deverá ver a tela padrão de uma instalação limpa do CodeIgniter.

CodeIgniter instalado em um container Docker

Conclusão

Viu como é simples instalar o CodeIgniter em um container Docker?

No próximo tutorial você vai aprender a criar uma aplicação que se conecta a um banco de dados, também utilizando containers Docker.

Até o próximo tutorial!