Para subir a aplicação do portainer, pegue o conteúdo do arquivo setup, acesse o servidor via SSH e execute o comando nano setup, ao abrir o editor, cole o conteúdo que copiou e salve o arquivo com CTRL+O, enter e CTRL+X para fechar o editor.
Abra o editor.
3. Salve e feche o arquivo.
2. Cole o conteúdo do setup.
Agora com o arquivo criado, de permissão de execução e execute o mesmo com o seguinte comando:
chmod +x setup && sudo ./setup
E aguarde até finalizar, quando o terminal liberar, acesse o browser com o ip público do servidor https://<ip-público>:9443 isso vai abrir o portainer, na primeira vez, precisa configurar o login com usuário, senha e token, para pegar o token execute o comando a seguir:
cd /root/infra/portainer && docker compose logs -f
Pegue o token como na imagem, e cole no campo correto.
Agora com o acesso ao portainer, acesse o docker clicando na opção com o nome 'local'.
1- No menu lateral, dentro da sessão Administration clique na opção Registries.
2- No canto superior diretiro, clique em Add resistry.
3- Clique em Custom registry e marque a opção Authentication e preencha da seguinte forma:
Name: gitlab-isocrmdev
Registry URL: isocrmgitlabdev.brazilsouth.cloudapp.azure.com:5050
Username: gitlab+deploy-token-7
Password: ****
Agora com o registries configurado, é preciso configurar o network do ambiente, para que todas as plicações consigam se enchergar.
1- No menu a esquerda, acesse a opção Networks.
2- Clique em Add network.
3- Preencha os campos conforme a imagem, atente-se ao Name no lugar de localhost, coloque o nome do ambiente que está montando, por exmeplo, proxy-homol-network, pode ser também o nome do cliente como proxy-teuto-network.
Após as configurações antetiores, vamos comçar a subir as aplicações, começando com o banco de dados postgresql.
1- No menu lateral, clique em Stacks.
2- Depois em Add stack.
3- coloque o nome isocrm-postgresql e cole o conteúdo do docker-compose, feito isso, só clique no botão Deploy the stack.
4- Agora o netcore, segue uma ideia bem parecida com o postgresql, mas alterando tudo que for localhost para o nome do ambiente em questão.
5- O nginx é um pouco diferente, como ele é a aplicação que controla a rede do servidor, é preciso sempre que criar uma nova network, ou adicionar umm novo ambiente, atualizar o nginx, se não atualizar, as aplicações não consigirão se comunicar, essa atualização é dentro da sessão volumes, segue exemplo:
volumes:
npm-data:
external: true
name: isocrm-nginx_npm_data
npm-letsencrypt:
external: true
name: isocrm-nginx_npm_letsencrypt
ws-temp:
external: true
name: isocrm-localhost-isocrmws-temp
Sempre que tive um novo ambiente, precisa adicionar um volume temporário para ele dentro de volumes:
volumes:
npm-data:
external: true
name: isocrm-nginx_npm_data
npm-letsencrypt:
external: true
name: isocrm-nginx_npm_letsencrypt
ws-temp:
external: true
name: isocrm-localhost-isocrmws-temp
homol_temp:
external: true
name: isocrm-homol-isocrmws-temp
O nome para essa stack deve ficar como isocrm-nginx.
6- E assim deve seguir para as demais aplicações, como react, modern e python, sempre trocando localhost para o nome do ambiente.