Commit 6cea5425733f9e715b8bf39b40538b820392064b
Committed by
GitHub
1 parent
278f2c30
Exists in
master
Update README.md
Adding Docker tutorial
Showing
1 changed file
with
161 additions
and
11 deletions
Show diff stats
README.md
... | ... | @@ -333,32 +333,182 @@ Once this is done, the breadcrumbs of the 'Create discipline' page is as follows |
333 | 333 | |
334 | 334 | [Home]() / [Courses]() / [Course Name]() / Create Subject |
335 | 335 | |
336 | +## 1. Docker | |
337 | +O Docker possui um Daemon para gerenciamento de conteiners. Sua instalação possui uma documentação oficial e pode ser conferida nas páginas: | |
336 | 338 | |
339 | +[Instalando Docker no Windows](https://docs.docker.com/docker-for-windows/) | |
337 | 340 | |
338 | -## Docker image | |
341 | +[Instalando Docker no Mac OSX](https://docs.docker.com/docker-for-mac/) | |
339 | 342 | |
340 | -Já tendo o docker instalado para executar o amadeus é preciso executar o seguinte comando: | |
343 | +[Instalando Docker no Ubuntu](https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/) | |
341 | 344 | |
345 | +## 2. Importando conteiner Docker do Amadeus LMS | |
346 | + | |
347 | +Com o Docker instalado, é possível importar uma imagem pré-configurada do Amadeus LMS comos seguintes comandos: | |
348 | + | |
349 | +Baixe a imagem diretamente do repositório do Amadeus LMS: | |
350 | +``` bash | |
351 | +sudo docker pull filipecmedeiros/amadeus:1.0 | |
352 | +``` | |
353 | +Execute o conteiner: | |
342 | 354 | ``` bash |
343 | - sudo docker run -itp 9000:9000 jailsondias/amadeus:0.1 | |
355 | +sudo docker run -itp 8000:80 filipecmedeiros/amadeus:1.0 | |
344 | 356 | ``` |
345 | -Depois que ja estiver no ambiente do docker execute os seguintes comandos: | |
357 | +Inicie o banco de dados Postgres e o servidor web Nginx: | |
358 | +``` bash | |
359 | +/etc/init.d/postgresql start | |
360 | +/etc/init.d/nginx start | |
361 | +``` | |
362 | + | |
363 | +Obs.: Espere alguns minutos até o servidor iniciar. | |
346 | 364 | |
365 | +Execute o Amadeus: | |
347 | 366 | ``` bash |
348 | - /etc/init.d/postgresql start | |
349 | - /etc/init.d/nginx start | |
350 | - cd amadeuslms | |
367 | +cd /home/amadeuslms/ | |
368 | +gunicorn amadeus.wsgi:application | |
351 | 369 | ``` |
352 | -Espere mais ou menos um minuto para que o PostgreSQL inicie e depois disso execute o seguinte comando: | |
353 | 370 | |
371 | +Para sair do docker e continuar com o Amadeus LMS executando no container só é preciso apertar crtl + p + q. | |
372 | + | |
373 | +## 3. Exportando conteiner Docker com Amadeus | |
374 | + | |
375 | +Para gerar sua própria imagem do Amadeus, disponibilizamos um exemplo utilizando Ubuntu 16.04 LTS + Postgres + Nginx: | |
376 | + | |
377 | +### 3.1 Preparando o conteiner | |
378 | +Faça o download de uma imagem do ubuntu: | |
379 | +``` bash | |
380 | +sudo docker pull ubuntu:16.04 | |
381 | +``` | |
382 | +Execute o conteiner a partir da imagem do ubuntu que acabou de ser baixada: | |
383 | +``` bash | |
384 | +sudo docker run -itp 8000:80 ubuntu:16.04 | |
385 | +``` | |
386 | +Antes de tudo, é necessário fazer um update para poder fazer o download de qualquer software: | |
387 | +``` bash | |
388 | +apt-get update | |
389 | +``` | |
390 | +A linguagem padrão utilizada é ASC II, faça a migração para UTF-8: | |
391 | +``` bash | |
392 | +export LANG=C.UTF-8 | |
393 | +``` | |
394 | +Após estes passos, o conteiner está preparado para fazer o download dos softwares e dependências | |
395 | +necessárias: | |
396 | +``` bash | |
397 | +apt-get install nano gettext nginx python3 python3-pip git postgresql postgresql-contrib libpq-dev | |
398 | +python3-dev | |
399 | +``` | |
400 | +Inicie o banco de dados Postgres: | |
401 | +``` bash | |
402 | +/etc/init.d/postgresql start | |
403 | +``` | |
404 | +Inicie o servidor web Nginx: | |
354 | 405 | ``` bash |
355 | - gunicorn amadeus.wsgi:application | |
406 | +/etc/init.d/nginx start | |
356 | 407 | ``` |
357 | -Agora só precisa abrir o navegador com localhost:9000 que vai abrir a página inicial do amadeus, caso apareça uma página de erro aperte crtl + c no terminal do docker e execute novamente o gunicorn. | |
408 | +### 3.2 Preparando o banco de dados Postgres | |
358 | 409 | |
359 | -Caso queira sair do docker e continuar com o amadeus executando no container só é preciso apertar crtl + p + q. | |
410 | +Faça login como usuário admin do Postgres: | |
411 | +``` bash | |
412 | +su postgres | |
413 | +``` | |
414 | +Crie um banco de dados: | |
415 | +``` bash | |
416 | +createdb amadeus | |
417 | +``` | |
418 | +Para executar comandos SQL, utilize o comando: | |
419 | +```bash | |
420 | +psql | |
421 | +``` | |
422 | +Então execute o comando para criar um usuário do Amadeus no banco de dados: | |
423 | +``` sql | |
424 | +CREATE ROLE amadeus_admin WITH LOGIN SUPERUSER PASSWORD 'amadeus'; | |
425 | +``` | |
426 | +Para sair, execute: | |
427 | +``` sql | |
428 | +/q | |
429 | +``` | |
430 | +E em seguida, para sair do usuário Postgres: | |
431 | +``` bash | |
432 | +exit | |
433 | +``` | |
434 | +### 3.3 Preparando o Amadeus | |
435 | +Faça o download do Amadeus a partir do repositório git: | |
436 | +``` bash | |
437 | +git clone https://github.com/amadeusproject/amadeuslms.git | |
438 | +``` | |
439 | +Crie um arquivo chamado local_settings.py no diretório /amadeuslms/amadeus/ : | |
440 | +```bash | |
441 | +nano /amadeuslms/amadeus/local_settings.py | |
442 | +``` | |
443 | +E adicione os valores do banco de dados que acabou de ser criado: | |
444 | +``` python | |
445 | +import os | |
446 | +DEBUG = True | |
447 | +DATABASES = { | |
448 | + 'default': { | |
449 | + 'ENGINE': 'django.db.backends.postgresql', | |
450 | + 'NAME': 'amadeus', | |
451 | + 'USER': 'amadeus_admin', | |
452 | + 'PASSWORD': 'amadeus', | |
453 | + 'HOST': '127.0.0.1', | |
454 | + 'PORT': '5432', | |
455 | + } | |
456 | +} | |
457 | + ``` | |
458 | +Aplique as migrações do Amadeus ao banco de dados: | |
459 | +```bash | |
460 | +cd amadeuslms/ | |
461 | +python3 manage.py migrate | |
462 | +``` | |
463 | +Ative as configurações de tradução do Amadeus: | |
464 | +```bash | |
465 | +python3 manage.py compilemessages | |
466 | +``` | |
467 | +Crie o usuário Admin do Amadeus: | |
468 | +``` bash | |
469 | +python3 manage.py createsuperuser | |
470 | +``` | |
471 | +### 3.4 Preparando o Nginx | |
472 | +Para fazer a configuração do Nginx, edite o arquivo default localizado em /etc/nginx/sitesavaliables e adicione as configurações: | |
473 | +``` bash | |
474 | +nano /etc/nginx/sites-avaliables/default | |
475 | +``` | |
476 | +``` bash | |
477 | +upstream backend { | |
478 | + server localhost:8000; | |
479 | +} | |
480 | +server { | |
481 | + listen 80 default_server; | |
482 | + listen 443 ssl; | |
483 | + server_name _; | |
484 | + | |
485 | + root /home/amadeuslms; | |
486 | + index index.html; | |
487 | + charset utf-8; | |
488 | + location / { | |
489 | + try_files $uri @proxy_to_app; | |
490 | + } | |
491 | + location /uploads { | |
492 | + autoindex on; | |
493 | + alias /home/amadeuslms/amadeus/uploads/; | |
494 | + } | |
495 | + location @proxy_to_app { | |
496 | + proxy_pass http://backend; | |
497 | + proxy_http_version 1.1; | |
498 | + proxy_set_header Upgrade $http_upgrade; | |
499 | + proxy_set_header Connection "upgrade"; | |
500 | + proxy_set_header Host $http_host; | |
501 | + } | |
502 | +} | |
503 | +``` | |
360 | 504 | |
505 | +Para executar o Amadeus LMS: | |
506 | +``` bash | |
507 | +cd /home/amadeuslms/ | |
508 | +gunicorn amadeus.wsgi:application | |
509 | +``` | |
361 | 510 | |
511 | +Para sair do docker e continuar com o Amadeus LMS executando no container só é preciso apertar crtl + p + q. | |
362 | 512 | ## Link's úteis |
363 | 513 | [Git - Introdução e comandos básicos(PT-BR)](https://github.com/fernandomayer/git-rautu/blob/master/0_configuracao-inicial.md) |
364 | 514 | ... | ... |