Add docker support - reload

Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2025-04-10 23:53:32 -03:00
1 parent ff9f0a3b70
commit 033138b67d
3 files changed
+47 -14

No files matched your search

+11 -8
View File
@@ -1,7 +1,6 @@
# Use uma versão LTS do Node.js
FROM node:20-slim FROM node:20-slim
# Instalar dependências do sistema necessárias # Instalar dependências do sistema
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
chromium \ chromium \
libgconf-2-4 \ libgconf-2-4 \
@@ -15,16 +14,20 @@ WORKDIR /usr/src/app
COPY package*.json ./ COPY package*.json ./
COPY prisma ./prisma/ COPY prisma ./prisma/
# Instalar dependências # Instalar dependências do projeto
RUN npm install RUN npm install
# Copiar o resto dos arquivos da aplicação # Instalar dependências globais necessárias
RUN npm install -g concurrently vite
RUN npm install @rollup/rollup-linux-arm64-gnu
# Copiar o resto dos arquivos
COPY . . COPY . .
# Gerar o cliente Prisma # Gerar cliente Prisma
RUN npx prisma generate RUN npx prisma generate
# Expor as portas necessárias # Expor portas
EXPOSE 3000 EXPOSE 3000
EXPOSE 5000 EXPOSE 5000
@@ -32,11 +35,11 @@ EXPOSE 5000
ENV NODE_ENV=production ENV NODE_ENV=production
ENV PORT=5000 ENV PORT=5000
ENV FRONTEND_PORT=3000 ENV FRONTEND_PORT=3000
ENV VITE_HOST=0.0.0.0
ENV HOST=0.0.0.0
# Script de inicialização # Script de inicialização
COPY docker-entrypoint.sh /usr/local/bin/ COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# Comando para iniciar a aplicação
ENTRYPOINT ["docker-entrypoint.sh"] ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["npm", "run", "dev:full"]
+35 -5
View File
@@ -1,16 +1,46 @@
#!/bin/bash #!/bin/bash
set -e set -e
echo "🚀 Iniciando o processo de inicialização..."
# Verificar variáveis de ambiente necessárias
if [ -z "$DATABASE_HOST" ] || [ -z "$DATABASE_PORT" ] || [ -z "$DATABASE_USER" ]; then
echo "❌ Erro: Variáveis de ambiente necessárias não estão definidas"
exit 1
fi
# Aguardar o PostgreSQL estar disponível # Aguardar o PostgreSQL estar disponível
echo "⏳ Verificando conexão com o PostgreSQL..."
until pg_isready -h $DATABASE_HOST -p $DATABASE_PORT -U $DATABASE_USER until pg_isready -h $DATABASE_HOST -p $DATABASE_PORT -U $DATABASE_USER
do do
echo "Aguardando PostgreSQL inicializar..." echo "🔄 Aguardando PostgreSQL inicializar..."
sleep 2 sleep 2
done done
echo "✅ PostgreSQL está pronto!"
# Instalar dependências caso necessário
if [ ! -d "node_modules" ]; then
echo "📦 Instalando dependências..."
npm install
fi
# Gerar cliente Prisma
echo "🔧 Gerando cliente Prisma..."
npx prisma generate
# Executar migrações do Prisma # Executar migrações do Prisma
echo "Executando migrações do banco de dados..." echo "🔄 Executando migrações do banco de dados..."
npx prisma migrate deploy npx prisma migrate deploy
# Executar o comando passado para o container # Verificar se as migrações foram bem sucedidas
exec "$@" if [ $? -eq 0 ]; then
echo "✅ Migrações concluídas com sucesso!"
else
echo "❌ Erro durante as migrações"
exit 1
fi
# Iniciar a aplicação com npm run dev:full
echo "🚀 Iniciando a aplicação..."
echo "📝 Executando: npm run dev:full"
exec npm run dev:full --host
+1 -1
View File
@@ -5,7 +5,7 @@
"main": "src/index.tsx", "main": "src/index.tsx",
"type": "commonjs", "type": "commonjs",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite --host 0.0.0.0",
"build": "tsc && vite build", "build": "tsc && vite build",
"preview": "vite preview", "preview": "vite preview",
"prisma:generate": "prisma generate", "prisma:generate": "prisma generate",