# Configurando o Ambiente

  • A Teknisa possui imagens de containers Docker que facilitarão a criação do ambiente de desenvolvimento.
  • Esse guia foi criado para Linux (ambiente de desenvolvimento recomendável).

Atenção!

Caso possuir um ambiente já configurado para uso do Zeedhi Next (Linux, WSL ou Cloud9 por exemplo), não há a necessidade de realizar os passos abaixo. Siga diretamente para a seção Projeto.

# Instalando o Docker


  • Execute os comandos a seguir para instalar o docker (alguns comandos poderão demorar).
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
sudo apt install build-essential
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
sudo service docker start

Nota

Comandos desenvolvidos para a distribuição Ubuntu.

# Pasta u01 (bibliotecas do oracle)


  • Baixe a pasta desse link (opens new window) no seu computador.
  • Essas bibliotecas serão necessárias nos próximos passos na criação do container.
  • Extraia e cole dentro do diretório do seu ambiente de trabalho.
    • Verifique se a pasta u01 está duplicada, ou seja, se dentro da u01 existe outra u01. Dependendo de qual programa utilizado para extrair isso pode acontecer.

# Container Teknisa


  • Autentique no DockerHub da Teknisa e baixe a imagem c9-php7.4.
sudo docker login -u teknisa -p teknisa2020 dockerhub.teknisa.com
sudo docker pull dockerhub.teknisa.com/c9-php7.4
  • Exemplo de comando para criação do container de desenvolvimento.
sudo docker run --restart=always -d --name tek-php7 -p 80:80 -p 8080 -v /seu/diretorio:/home/developer/workfolder -v /seu/diretorio/u01:/u01 -it dockerhub.teknisa.com/c9-php7.4
  • Altere o /seu/diretorio no comando de acordo com sua pasta de trabalho.
  • Parâmetros:
    • --restart=always: Para o container já ser iniciado assim que o serviço do docker iniciar;
    • --name: Nome a ser utilizado para acessar o container. Nesse exemplo utilizamos tek-php7;
    • -p: Mapear portas do container para serem utilizadas externamente;
      • O mapeamento da porta 80 do container é obrigatório para utilização do apache. Nesse exemplo, utilizamos 80 também fora do container, mas caso queira alterar é possível. Basta informar, por exemplo, 9090:80 no mapeamento.
      • Faça o mapeamento da porta 8080 também, ela será utilizada posteriormente para a execução do frontend do seu projeto.
      • É possível mapear mais portas de acordo com a necessidade.
    • -v: Diretórios para serem compartilhados com o seu Container;
      • O usuário padrão do container Teknisa é developer. A fim de facilitar o uso, aponte o mapeamento de seu diretório para a pasta workfolder desse usuário.
      • Aponte corretamente o volume da u01 para a pasta que você extraiu no passo anterior.

Atenção!

  • No comando de exemplo acima, caso opte por não utilizar a porta 80, utilize 9090 ou 8081, por exemplo. Ressaltamos que a porta 8080 também será utilizada.
  • Se for utilizar de fato a porta 80, garanta que não há nenhum serviço em seu ambiente que já esteja a utilizando.
  • Em ambientes Windows, geralmente o IIS utiliza a porta 80 por padrão. Nesse caso, altera a porta do próprio IIS ou de seu container.

# Usuário no container Teknisa


  • Antes de entrar no container execute o comando:
$UID

UID

  • Aparentemente vai gerar um erro, mas vai mostrar o seu ID no início.
  • Entre no container com o comando:
sudo docker exec -it tek-php7 bash
  • Lembrando que nosso container foi criado com o nome tek-php7. Se o seu for diferente, altere no comando.

  • Verifique se dentro do container já existe algum usuário com o mesmo ID que o seu. Abra o arquivo com o comando vim /etc/passwd (se preferir, utilize o nano, outro editor ou até o explorador de arquivos).

  • Crie seu usuário com o comando:

adduser -u 1000 seu_usuario
  • Caso seu ID não for 1000, altere no comando.
  • Informe uma senha.
  • Para os demais parâmetros, basta teclar Enter que não serão importantes.
  • Altere o dono da pasta do seu usuário (pode ser que esteja com o root) com o comando:
chown -R 1000:1000 /home/seu_usuario
  • Saia do container. A partir de agora, todas as alterações nos arquivos dos seus projetos dentro do container (como um composer update) devem ser feitas com seu usuário. Dessa forma, não haverá nenhum problema acessar os arquivos tanto fora quanto dentro do container.
    • Para configurações do linux que executam dentro do seu container, pode ser que haja a necessidade de serem feitas com o usuário root, como as feitas até aqui.
  • Para entrar no container já com seu usuário, utilize o comando:
docker exec -it -u seu_usuario tek-php7 bash

# Apache do Container


  • Para que seu sistema execute no navegador, utilizamos o Apache, que já vem pré configurado na pasta workfolder do seu container.
  • Caso o apache pare ou não esteja rodando após iniciar por qualquer motivo que seja, execute o comando dentro do container (com o usuário root):
apachectl stop && /etc/init.d/apache2 start