Skip to content

Guia Docker [PT BR]

Gustavo edited this page Sep 9, 2017 · 4 revisions

1. Docker

O Docker possui um Daemon para gerenciamento de conteiners. Sua instalação possui uma documentação oficial e pode ser conferida nas páginas:

Instalando Docker no Windows

Instalando Docker no Mac OSX

Instalando Docker no Ubuntu

2. Importando conteiner Docker do Amadeus LMS

Com o Docker instalado, é possível importar uma imagem pré-configurada do Amadeus LMS comos seguintes comandos:

Baixe a imagem diretamente do repositório do Amadeus LMS:

sudo docker pull filipecmedeiros/amadeus:1.0

Execute o conteiner:

sudo docker run -itp 8000:80 filipecmedeiros/amadeus:1.0

Inicie o banco de dados Postgres e o servidor web Nginx:

/etc/init.d/postgresql start
/etc/init.d/nginx start

Obs.: Espere alguns minutos até o servidor iniciar.

Execute o Amadeus:

cd /home/amadeuslms/
gunicorn amadeus.wsgi:application

Para sair do docker e continuar com o Amadeus LMS executando no container só é preciso apertar crtl + p + q.

3. Exportando conteiner Docker com Amadeus

Para gerar sua própria imagem do Amadeus, disponibilizamos um exemplo utilizando Ubuntu 16.04 LTS + Postgres + Nginx:

3.1 Preparando o conteiner

Faça o download de uma imagem do ubuntu:

sudo docker pull ubuntu:16.04

Execute o conteiner a partir da imagem do ubuntu que acabou de ser baixada:

sudo docker run -itp 8000:80 ubuntu:16.04

Antes de tudo, é necessário fazer um update para poder fazer o download de qualquer software:

apt-get update

A linguagem padrão utilizada é ASC II, faça a migração para UTF-8:

export LANG=C.UTF-8

Após estes passos, o conteiner está preparado para fazer o download dos softwares e dependências necessárias:

apt-get install nano gettext nginx python3 python3-pip git postgresql postgresql-contrib libpq-dev
python3-dev

Inicie o banco de dados Postgres:

/etc/init.d/postgresql start

Inicie o servidor web Nginx:

/etc/init.d/nginx start

3.2 Preparando o banco de dados Postgres

Faça login como usuário admin do Postgres:

su postgres

Crie um banco de dados:

createdb amadeus

Para executar comandos SQL, utilize o comando:

psql

Então execute o comando para criar um usuário do Amadeus no banco de dados:

CREATE ROLE amadeus_admin WITH LOGIN SUPERUSER PASSWORD 'amadeus';

Para sair, execute:

/q

E em seguida, para sair do usuário Postgres:

exit

3.3 Preparando o Amadeus

Faça o download do Amadeus a partir do repositório git:

git clone https://github.com/amadeusproject/amadeuslms.git

Crie um arquivo chamado local_settings.py no diretório /amadeuslms/amadeus/ :

nano /amadeuslms/amadeus/local_settings.py

E adicione os valores do banco de dados que acabou de ser criado:

import os
DEBUG = True
DATABASES = {
	'default': {
	'ENGINE': 'django.db.backends.postgresql',
	'NAME': 'amadeus',
	'USER': 'amadeus_admin',
	'PASSWORD': 'amadeus',
	'HOST': '127.0.0.1',
	'PORT': '5432',
	}
}

Aplique as migrações do Amadeus ao banco de dados:

cd amadeuslms/
python3 manage.py migrate

Ative as configurações de tradução do Amadeus:

python3 manage.py compilemessages

Crie o usuário Admin do Amadeus:

python3 manage.py createsuperuser

3.4 Preparando o Nginx

Para fazer a configuração do Nginx, edite o arquivo default localizado em /etc/nginx/sitesavaliables e adicione as configurações:

nano /etc/nginx/sites-avaliables/default
upstream backend {
 server localhost:8000;
}
server {
 listen 80 default_server;
 listen 443 ssl;
 server_name _;

 root /home/amadeuslms;
 index index.html;
 charset utf-8;
 location / {
 try_files $uri @proxy_to_app;
 }
 location /uploads {
 autoindex on;
 alias /home/amadeuslms/amadeus/uploads/;
 }
 location @proxy_to_app {
 proxy_pass http://backend;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 proxy_set_header Host $http_host;
 }
}

Para executar o Amadeus LMS:

cd /home/amadeuslms/
gunicorn amadeus.wsgi:application

Para sair do docker e continuar com o Amadeus LMS executando no container só é preciso apertar crtl + p + q.