Dockerfile
This commit is contained in:
1 parent
25827aa049
commit
2d2e40214b
9 files changed
+790
-1
No files matched your search
+42
@@ -0,0 +1,42 @@
|
||||
# Use Node.js LTS (Long Term Support) como base
|
||||
FROM node:22-alpine
|
||||
|
||||
RUN apk add git nano openssh
|
||||
|
||||
# Definir o diretório de trabalho
|
||||
WORKDIR /app
|
||||
|
||||
# Copiar arquivos de dependências
|
||||
COPY package*.json ./
|
||||
|
||||
# Instalar dependências de produção
|
||||
RUN npm ci --only=production && npm cache clean --force
|
||||
|
||||
# Criar usuário não-root para segurança
|
||||
RUN addgroup -g 1001 -S nodejs && \
|
||||
adduser -S botuser -u 1001 -G nodejs
|
||||
|
||||
# Copiar código fonte
|
||||
COPY . .
|
||||
|
||||
# Criar diretório de logs e definir permissões
|
||||
RUN mkdir -p /app/logs && \
|
||||
chown -R botuser:nodejs /app && \
|
||||
chmod -R 755 /app
|
||||
|
||||
# Mudar para usuário não-root
|
||||
USER botuser
|
||||
|
||||
# Expor porta (se necessário para health checks)
|
||||
EXPOSE 3000
|
||||
|
||||
# Definir variáveis de ambiente padrão
|
||||
ENV NODE_ENV=production
|
||||
ENV BOT_DEBUG=false
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
||||
CMD node -e "console.log('Bot is running')" || exit 1
|
||||
|
||||
# Comando para iniciar o bot
|
||||
CMD ["npm", "start"]
|
||||
Reference in new issue
Block a user