-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile
More file actions
30 lines (21 loc) · 757 Bytes
/
Dockerfile
File metadata and controls
30 lines (21 loc) · 757 Bytes
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
# Usamos node:18-slim (Debian) em vez de Alpine para maior compatibilidade com SQLite
FROM node:18-slim
# Define o diretório de trabalho
WORKDIR /app
# Copia os arquivos de dependência
COPY package*.json ./
# Usa 'npm install' em vez de 'npm ci' para evitar erros de lockfile desatualizado
# E --omit=dev para não instalar coisas desnecessárias
RUN npm install --omit=dev
# Copia o restante do código
COPY . .
# Cria a pasta do banco de dados e ajusta permissões (importante para o usuário do node)
RUN mkdir -p /app/dados && chown -R node:node /app/dados
# Define variável de ambiente
ENV NODE_ENV=production
# Expõe a porta
EXPOSE 3000
# Troca para o usuário 'node' por segurança
USER node
# Inicia o servidor
CMD ["node", "index.js"]