-
Notifications
You must be signed in to change notification settings - Fork 17
Guia Docker
-
ej-server
possui a seguinte herança de imagens Docker:-
ej-server:base
: Possui todas as dependências definidas emrequirements/base.txt
e todos os scripts definidos emdocker/base/script
(ex:runserver.sh
,gunicorn.sh
,test.sh
,run_celery.sh
, etc) na raíz do docker (/
);-
ej-server:base-test
: Além dos recursos deej-server:base
, possui todas as dependências definidas emrequirements/test.txt
. Essa imagem é utilizada para executar os testes locais e para o ambiente de desenvolvimento; -
ej-server:base-production
: Além dos recursos deej-server:base
, possui todas as dependências definidas emrequirements/production.txt
;-
ej-server:develop
: Além dos recursos deej-server:base-production
, possui o ambiente de homologação devidamente configurado;-
ej-nginx:develop
: Copia os arquivos estáticos deej-server:develop
para seu ambiente nginx.
-
-
ej-server:latest
: Além dos recursos deej-server:base-production
, possui o ambiente de produção devidamente configurado;-
ej-nginx:latest
: Copia os arquivos estáticos deej-server:latest
para seu ambiente nginx.
-
-
-
-
O ambiente de desenvolvimento é o padrão da aplicação EJ, então para iniciar os serviços de desenvolvimento basta entrar na pasta docker e executar:
sudo docker-compose up
Isso executará o docker-compose.yml da aplicação que utiliza a imagem Dockerfile e é a responsável pelo ambiente de desenvolvimento.
Para executar um ambiente de produção temos um docker-compose específico para isso que utiliza o Dockerfile.deploy.
# Preencha o arquivo ./env/deploy.env
sudo docker-compose -f docker-compose.production.yml
Importante lembrar que as variáveis de ambiente utilizadas pelos serviços de produção estão no deploy.env, sendo necessário preenche-las antes de executar o docker-compose. Estas variáveis também não devem ser publicadas no repositório, apenas preenchidas no ambiente de produção onde serão utilizadas antes de subir o ambiente docker.
Caso deseje apagar os dados do ejplatform do banco de dados será necessário apagar os volumes do container, primeiro parando os containeres, depois eliminando os volumes não utilizados mais.
sudo docker-compose down
sudo docker volume prune
*** Atenção: Isso irá apagar todos os bancos de dados que estejam parados em seu ambiente docker, caso deseje apagar apenas os volumes do EJ, utilize "sudo docker volume rm ".
# Os containeres devem estar rodando
sudo docker-compose up
# Abra outro terminal ou utilize a flag -d após o comando up
# Então execute a tarefa do invoke no container web
sudo docker-compose exec web inv db-fake
O EJ atualmente tem dois temas, o default e o CPA. Para trocar é necessário que o sistema compile os arquivos scss do novo tema e substitua os css anteriores. Para isto basta indicar qual o tema desejado no comando:
# Os containeres devem estar rodando
sudo docker-compose up
# Abra outro terminal ou utilize a flag -d após o comando up
# Com o projeto rodando podemos recompilar os scss
sudo docker-compose exec web inv sass -t cpa
# Ou
sudo docker-compose exec web inv sass -t default
ALERTA! Isso irá limpar TUDO que tange aos serviços Docker! Faça apenas se tiver CERTEZA de que tudo que possui de Docker ( incluindo de outros sistemas ) é dispensável!
# Parar todos os containeres rodando:
sudo docker stop `sudo docker ps -a -q`
# Remover todos os containeres parados:
sudo docker rm `sudo docker ps -a -q`
# Remover todas as imagens _dangling_:
sudo docker rmi `sudo docker images -a -q -f "dangling=true"`
# Remover todas as imagens docker:
sudo docker rmi -f `sudo docker images -a -q`
# Remover todas as redes docker não mais utilizadas
sudo docker network prune
# Remover todos os volumes docker não utilizados
sudo docker volume prune
Caso não possa fazer o Full clean up, pode procurar e eliminar apenas as informações do EJ de seu sistema docker a cada passo.
#Listar todos os containeres
sudo docker ps
# Procure e pare todos os containeres ejplatform
sudo docker stop <CONTAINER ID>
# Remova os containeres ejplatform
sudo docker rm <CONTAINER ID>
# Liste todas as imagens
sudo docker images
# Remova todas as imagens ejplatform
sudo docker rmi <IMAGE ID>
# Liste todas as networks
sudo docker network ls
# Remova as networks ejplatform
sudo docker network rm <NETWORK ID>
# Liste os volumes existentes
sudo docker volume ls
# Remova os volumes ejplatform
sudo docker volume rm <VOLUME NAME>