Skip to content

Commit a1c201d

Browse files
committed
Adicionado artigo sobre docker, fig e django
1 parent 0b7d3e8 commit a1c201d

File tree

2 files changed

+116
-0
lines changed

2 files changed

+116
-0
lines changed
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
Title: Conteinerizando suas aplicações django com docker e fig
2+
Slug: conteinerizando-suas-aplicacoes-django-com-docker-e-fig
3+
Date: 2015-01-25 13:00
4+
Tags: django, docker, fig
5+
Author: Hudson Brendon
6+
7+
Github: hudsonbrendon
8+
Twitter: hudsonbrendon
9+
Facebook: hudson.brendon
10+
Category: Django
11+
12+
![Docker](/images/hudsonbrendon/django-fig.png)
13+
14+
15+
Se você como eu é um desenvolvedor incansável quando o assunto é automatizar ao máximo seu workflow de trabalho,este post foi feito para você. O [fig](http://www.fig.sh/) utilizando-se do docker, torna a criação de ambientes de desenvolvimento algo muito simples.
16+
17+
18+
#Instalação
19+
20+
A instalação do fig é bem simples, primeiro você terá que ter o docker instalado em sua máquina, caso não tenha, siga esse [tutorial](http://hudsonbrendon.com/docker-introducao-e-aplicacao.html) onde exemplifico a instalação do mesmo de forma bem simples. Com o docker pronto, é hora de instalar o fig, essa ferramenta é um pacote python, e a forma mais simples de instalá-la é através do pip, que é o gerenciador de pacotes do python, caso não o tenha instalado em sua máquina, acesse o [site oficial](https://pip.pypa.io/en/latest/installing.html) e veja a forma mais simples para você obtê-lo. Com tudo pronto, execute no terminal.
21+
22+
```bash
23+
$ pip install -U fig
24+
```
25+
26+
#Utilizando o fig com django
27+
28+
Com o docker e o fig devidamente instalados em sua máquina, é hora de integrar o django com essa maravilhosa ferramenta, para tanto, criaremos um diretório com um nome qualquer, aqui chamado de "app", e dentro do mesmo criaremos um arquivo chamado "Dockerfile", com o seguinte conteúdo.
29+
30+
```bash
31+
FROM python:2.7
32+
ENV PYTHONUNBUFFERED 1
33+
RUN mkdir /code
34+
WORKDIR /code
35+
ADD requirements.txt /code/
36+
RUN pip install -r requirements.txt
37+
ADD . /code/
38+
```
39+
Em seguinda criaremos um arquivo chamado "requirements.txt", com os seguintes pacotes.
40+
41+
```bash
42+
Django
43+
psycopg2
44+
```
45+
E por fim um arquivo, "fig.yml", com a configuração abaixo.
46+
47+
```bash
48+
db:
49+
image: postgres
50+
web:
51+
build: .
52+
command: python manage.py runserver 0.0.0.0:8000
53+
volumes:
54+
- .:/code
55+
ports:
56+
- "8000:8000"
57+
links:
58+
- db
59+
```
60+
#Quem é quem no jogo do bicho
61+
62+
Com os arquivos criados é hora de entender qual a função de cada um no workflow.
63+
64+
* **Dockerfile** - É o arquivo que especifica como uma imagem no docker será criada, os pacotes que serão instalados, usuários que serão criados, portas que serão expostas, diretórios que serão compartilhados entre o host e um container, etc. Para mais informações [acesse](http://hudsonbrendon.com/docker-introducao-e-aplicacao.html).
65+
66+
* **requirements.txt** - É um arquivo que guarda todas as dependências de um projeto python.
67+
68+
* **fig.yml** - É o arquivo de configuração do fig, é composto por blocos e cada bloco corresponde a um container, podendo eles serem "linkados", o fig utilizará esse arquivo como base para criar os conteineres necessários, e executar tudo que foi especificado no mesmo.
69+
70+
Com os arquivos finalizados, é hora de criar uma aplicação em django, para isso basta.
71+
72+
```bash
73+
$ fig run web django-admin.py startproject figexample .
74+
```
75+
E o resultado será esse:
76+
77+
```bash
78+
$ ls
79+
Dockerfile fig.yml figexample manage.py requirements.txt
80+
```
81+
Com a aplicação em mãos, a primeira coisa que você deve fazer é abrir o arquivo settings.py de sua aplicação, e configurar o banco de dados da mesma. Para isso no arquivo figexample/settings.py basta especificar as configurações abaixo no banco de dados.
82+
83+
```python
84+
DATABASES = {
85+
'default': {
86+
'ENGINE': 'django.db.backends.postgresql_psycopg2',
87+
'NAME': 'postgres',
88+
'USER': 'postgres',
89+
'HOST': 'db',
90+
'PORT': 5432,
91+
}
92+
}
93+
```
94+
Com o banco configurado é hora de subir sua aplicação, na pasta raiz do projeto use.
95+
96+
```bash
97+
$ fig up
98+
```
99+
O fig se encarregará de criar todos os conteineres, linkalos, e startar sua aplicação na porta 8000, acesse seu [localhost:8000](http://localhost:8000/) e você verá sua aplicação em execução.
100+
101+
102+
Para rodar os comandos do django, você pode fazer da seguinte forma.
103+
104+
```bash
105+
$ fig run <bloco> <comando>
106+
```
107+
Por exemplo.
108+
109+
```bash
110+
$ fig run web ./manage.py syncdb
111+
```
112+
Lembrando que esse comando sempre será o padrão.
113+
114+
#Conclusão
115+
116+
Como você pode ver, o fig em conjunto com o docker torna seu workflow algo extremamente simples e eficaz. O melhor disso tudo, é que, para trabalhar com esse mesmo ambiente em uma nova máquina, você apenas precisará do fig e docker instalados, acessar a rais do projeto e executar um fig up, gerando com isso,uma comodidade jamais vista.
106 KB
Loading

0 commit comments

Comments
 (0)