Skip to content

Configuración Inicial

Pasos para preparar tu proyecto Astro con los archivos necesarios para Docker.

Terminal window
# Clonar repositorio en /root (donde está el docker-compose.yml)
cd /root
git clone git@github.com:tu-usuario/tu-proyecto-astro.git
cd tu-proyecto-astro

Nota: Si es la primera vez clonando desde GitHub, necesitas configurar SSH para GitHub.

Terminal window
# Crear Dockerfile en la raíz del proyecto
vim Dockerfile

Contenido del Dockerfile:

# Etapa 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
# Copiar archivos de dependencias
COPY package*.json ./
# Instalar dependencias
RUN npm ci
# Copiar código fuente
COPY . .
# Construir proyecto
RUN npm run build
# Etapa 2: Producción
FROM nginx:alpine
# Copiar archivos construidos desde etapa anterior
COPY --from=builder /app/dist /usr/share/nginx/html
# Copiar configuración personalizada de Nginx (opcional)
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Exponer puerto
EXPOSE 80
# Comando por defecto
CMD ["nginx", "-g", "daemon off;"]
Terminal window
# Crear nginx.conf
vim nginx.conf

Contenido:

server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
# Soporte para SPA/routing
location / {
try_files $uri $uri/ /index.html;
}
# Compresión gzip
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# Cache para assets
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
Terminal window
# Crear .dockerignore
vim .dockerignore

Contenido:

node_modules
.git
.github
.vscode
dist
.env
.env.local
*.log
npm-debug.log*
.DS_Store
Terminal window
# Verificar que Docker está instalado
docker --version
docker compose version
# Ver contenedores existentes (deberías ver traefik y n8n)
docker ps
# Ver el docker-compose.yml existente
cat /root/docker-compose.yml

Continúa con Configuración de Traefik para integrar tu proyecto con el reverse proxy.