Desenvolvimento com Docker

Por enquanto o Docker é utilizado somente para auxiliar o processo de desenvolvimento da plataforma.

ATENÇÃO Essa documentação funciona apenas para levantar o ambiente de desenvolvimento, ou seja, o Docker ainda não levanta o ambiente de produção. Se você quer ajudar com isso, entre em contato em (chat.mapasculturais.org)

Docker

Os arquivos do Docker estão no diretório "docker/dev" na raíz do projeto, sendo um Dockerfile e um Dockerfile-db, responsáveis por configurar respectivamente a imagem do sistema web e do banco de dados.

Docker Compose

O arquivo docker-compose.dev.yml está no diretório raiz do projeto. O projeto está usando a porta 8090 para o host do ambiente web, para alterar basta alterar o item "ports" no arquivo docker-compose.dev.yml de "8090:80" para "[porta]:80".

Levantar o ambiente com Docker Compose

Para criar o ambiente é necessário ter o docker e o docker-compose instalado no host, então basta executar o seguinte comando para criar as imagens.

$ docker-compose -f docker-compose.dev.yml build

Para criar os containers e executar o servidor deve ser utilizado o seguinte comando.

$ docker-compose -f docker-compose.dev.yml up

A primeira vez que o comando for executado ele irá gerar as imagens docker, caso o comando de build não tenha sido executado, em seguida ele executa o servidor.

Também é possível criar os containers fazendo com que antes sejam criadas as imagens através do seguinte comando.

$ docker-compose -f docker-compose.dev.yml up --build

Ao final do processo, basta acessar o link "localhost:8090", para acessar o site do mapas.

Importar um dump para o banco de dados

Inicialmente certifique-se de que as imagens docker foram criadas, pode ser verificado através do seguinte comando.

$ docker images

Então deve-se criar o container do banco de dados e permitir que esse container tenha acesso ao arquivo de dump, para isso coloque o arquivo de dump na raiz do projeto, em seguida execute o seguinte comando.

$ docker-compose run -v "$PWD":/var/lib db

Identifique o ID do container que foi criado através do seguinte comando.

$ docker ps -a

Execute o seguinte comando para dar um start no container.

$ docker start [CONTAINER ID]

Acesse o container através do seguinte comando.

$ docker exec -it [CONTAINER ID] bash

Estando dentro do container vá para o diretório /var/lib.

$ cd /var/lib

Deve-se recriar o banco de dados através do seguinte comando.

$ dropdb -U mapas mapas && createdb -U mapas -T template0 mapas

Agora basta rodar o seguinte comando para importar o dump.

$ psql -U mapas -f [ARQUIVO DO DUMP]