Instalação com Docker
Como instalar usando Docker!
4 minute read
A maneira mais fácil de instalar e executar o OpenDataBio é usando o Docker e os arquivos de configuração do docker fornecidos, que contêm todas as configurações necessárias para executar o ODB. Usa nginx e mysql e supervisor.
Os arquivos Docker forneceidos são para teste, desenvolvimento e instalações locais
Arquivos Docker incluídos
laraverl-app/
----docker/*
----./env.docker
----docker-compose.yml
----Dockerfile
----Makefile
Eles foram adaptados deste link, onde você também encontra uma configuração de produção.
Instalação
Baixar OpenDataBio
- Certifique-se de ter Docker e Docker-compose instalados em seu sistema operacional.
##ubuntu
docker --version
sudo apt update
sudo apt install docker
sudo apt install docker-compose-plugin
- Verifique se o seu usuário está no grupo docker criado durante a instalação do docker;
getent group docker
#se nao estiver na lista adicione
#adicione o grupo docker se nao existir
sudo groupadd docker
#adicione o usuario conectado ao grupo docker
sudo gpasswd -a $USER docker
#reinicie o docker
sudo service docker restart
- Baixe ou clone o OpenDataBio em sua máquina;
- Certifique-se de que o seu usuário é o proprietário da pasta e do conteúdo criados, caso contrário, altere o proprietário e o grupo recursivamente para o seu usuário
- Entre no diretório criado
opendatabio
- Editar e ajustar as configurações de ambiente
.env.docker
e copiar ele como.env
Importante
cp .env.docker .env
- Para instalar localmente para desenvolvimento, basta ajustar as seguintes variáveis no arquivo Dockerfile, que são necessárias para mapear os proprietários dos arquivos para um usuário do docker;
UID
o usuário numérico que você está logado e que é o dono de todos os arquivos e diretórios no diretório opendatabio (em geral 1000 ou 1001).GDI
o grupo numérico ao qual o usuário pertence, geralmente o mesmo que UID.
#usuario atual
id -u #se UID=1000 não precisa de ajuste
#grupo de usuario atual
id -g #se GDI=1000 não precisa de ajuste
- O arquivo
Makefile
contém atalhos para os comandos docker-compose usados para construir os serviços configurados nodocker-compose.yml
e arquivos auxiliares na pastadocker
. - Crie os contêineres do docker usando os atalhos (leia o Makefile para compreender os comandos)
make build
- Inicie os serviços docker implementados
make start
- Veja os contêineres e tente entrar no contêiner laravel
docker ps
make ssh #para entrar no container do app
make ssh-mysql #para entrar no container do mysql container onde você pode acessar a base de dados usando `mysql -uroot -p`
- Gerar a chave única APP_KEY
make key-generate
- Instale as dependencias
make composer-install
- Criar a base de dados usando Laravel Migration
make migrate
- Você pode alimentar as tabelas Locations e Taxons usando o seed data para sua versão do OpenDataBio:
make seed-odb
- Se funcionou, então Opendatabio estará disponível em seu navegador http::/localhost:8081.
- O banco de dados estará disponível através do phpmyadmin em http://localhost:8082/
- Faça login com o super-usuário
admin@example.org
e a senhapassword1
- Configurações adicionais nesses arquivos são necessárias para um ambiente de produção e implantação;
Persistência de dados
As containers criados pelo Docker podem ser excluídos e regerados sem perder os dados As tabelas mysql são armazenadas em um volume, que se apagado irá excluir a base de dados completamente.
docker volume list
Usando
O arquivo Makefile
contém os seguintes comandos para interagir com os contêineres do docker e o odb.
Comandos para construir e criar o app
make build
- construir os contêineresmake key-generate
- gerar a chave do app e adicioná-la ao .envmake composer-install
- instalar dependências phpmake composer-update
- atualizar dependências phpmake composer-dump-autoload
- executar o dump-autoload do composer dentro do contêinermake migrate
- criar ou atualizar o banco de dadosmake drop-migrate
- apaga a base de dados e migra novamentemake seed-odb
- popular o banco de dados com localizações e táxons
Comandos para acessar os contêineres docker
make start
- iniciar todos os contêineresmake stop
- parar todos os contêineresmake restart
- reiniciar todos os contêineresmake ssh
- entrar no contêiner principal da aplicação laravelmake ssh-mysql
- entrar no contêiner mysql, para que você possa acessar o log do banco de dados usandomysql -uUSER -pPWD
make mysql
- entrar no console docker do mysqlmake ssh-nginx
- entrar no contêiner nginxmake ssh-supervisord
- entrar no contêiner supervisord
Comandos de manutenção
make optimize
- limpar caches e arquivos de logmake info
- mostrar informações do appmake logs
- mostrar logs do laravelmake logs-mysql
- mostrar logs do mysqlmake logs-nginx
- mostrar logs do nginxmake logs-supervisord
- mostrar logs do supervisord
Recriando os containers
Se você tiver problemas e alterou os arquivos do docker, pode ser necessário reconstruir:
#apaga todas as imagens sem apagr a base de dados
make stop #pare todas
docker system prune -a #aceitar com Yes
#se quiser pagar os dados
docker volume list
docker volume rm VOLUME_ID
#construa novamente
make build
make start