-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
128 lines (69 loc) · 2.33 KB
/
Copy pathDockerfile
File metadata and controls
128 lines (69 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
FROM python:3.11-slim
# Instala dependências do sistema (ODBC + gcc)
RUN apt-get update && apt-get install -y \
gcc \
g++ \
unixodbc \
unixodbc-dev \
libpq-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
# Define diretório de trabalho
WORKDIR /app
# Copia requirements primeiro
COPY requirements.txt .
# Instala dependências Python
RUN pip install --no-cache-dir -r requirements.txt
# Copia o restante do projeto
COPY . .
# Expõe a porta
EXPOSE 8000
# Comando padrão
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
# CODIGOS PARA DOCKERFILE :
# 📌 Buildar imagem
# docker build -t minha_api . ---> -t dá um nome/tag à imagem).
# 📌 Rodar container
# docker run -d -p 8000:8000 --name FINANCE API -d → modo "detached" (roda em segundo plano)
# -p → mapeia porta (host:container) --name → dá nome ao container
# 📌 Listar containers
# docker ps containers rodando
# docker ps -a todos containers (inclui parados)
# 📌 Parar / iniciar container
# docker stop api
# docker start api
# 📌 Remover container
# docker rm api
# 📌 Remover imagem
# docker rmi minha_api
# 📌 Entrar dentro do container
# docker exec -it api bash ----> (-it dá terminal interativo, tipo SSH no container)
# 📌 Ver logs
# docker logs -f api ---> (-f = segue em tempo real)
# 📌 Atualizar container (rebuildar)
# docker stop api
# docker rm api
# docker build -t minha_api .
# docker run -d -p 8000:8000 --name api minha_api
# 📌 Subir containers
# docker-compose up
# docker-compose up -d # em segundo plano
# 📌 Derrubar containers
# docker-compose down
# 📌 Rebuildar (após mudar Dockerfile)
# docker-compose up --build
# 📌 Escalar serviços
# docker-compose up --scale api=3 -d ---> (sobe 3 instâncias do serviço api)
# 📌 Logs de todos os serviços
# docker-compose logs -f
# 📌 Rodar comando dentro do serviço
# docker-compose exec api alembic upgrade head
# ⚡ Atalhos úteis no dia a dia
# Parar tudo
# docker stop $(docker ps -q)
# Remover tudo parado
# docker container prune
# Remover todas imagens não usadas
# docker image prune -a
# Ver espaço usado pelo Docker
# docker system df