From ff9f0a3b70035470cd2a01abb81cdcce4e2aabdd Mon Sep 17 00:00:00 2001 From: Rodrigo Martins Date: Thu, 10 Apr 2025 23:21:08 -0300 Subject: [PATCH] Add docker support Signed-off-by: Rodrigo Martins --- Dockerfile | 42 ++++++++++++++++++++++++++++++++++++++++++ docker-entrypoint.sh | 16 ++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..88efc91 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,42 @@ +# Use uma versão LTS do Node.js +FROM node:20-slim + +# Instalar dependências do sistema necessárias +RUN apt-get update && apt-get install -y \ + chromium \ + libgconf-2-4 \ + postgresql-client \ + && rm -rf /var/lib/apt/lists/* + +# Criar diretório da aplicação +WORKDIR /usr/src/app + +# Copiar arquivos de dependências +COPY package*.json ./ +COPY prisma ./prisma/ + +# Instalar dependências +RUN npm install + +# Copiar o resto dos arquivos da aplicação +COPY . . + +# Gerar o cliente Prisma +RUN npx prisma generate + +# Expor as portas necessárias +EXPOSE 3000 +EXPOSE 5000 + +# Configurar variáveis de ambiente +ENV NODE_ENV=production +ENV PORT=5000 +ENV FRONTEND_PORT=3000 + +# Script de inicialização +COPY docker-entrypoint.sh /usr/local/bin/ +RUN chmod +x /usr/local/bin/docker-entrypoint.sh + +# Comando para iniciar a aplicação +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["npm", "run", "dev:full"] \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..11ba747 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e + +# Aguardar o PostgreSQL estar disponível +until pg_isready -h $DATABASE_HOST -p $DATABASE_PORT -U $DATABASE_USER +do + echo "Aguardando PostgreSQL inicializar..." + sleep 2 +done + +# Executar migrações do Prisma +echo "Executando migrações do banco de dados..." +npx prisma migrate deploy + +# Executar o comando passado para o container +exec "$@" \ No newline at end of file