Docker e CodeIgniter: como iniciar uma aplicação 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
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.
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.
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
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:
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.
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.
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.