44 lines
1.0 KiB
Docker
44 lines
1.0 KiB
Docker
# 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
|
|
ENV TZ=America/Araguaina
|
|
|
|
# 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"]
|