Add docker support - reload
Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
ff9f0a3b70
commit
033138b67d
3 files changed
+48
-15
No files matched your search
+12
-9
@@ -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
@@ -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
@@ -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",
|
||||||
|
|||||||
Reference in new issue
Block a user