Hoy os voy a compartir una configuración Docker Compose muy necesaria y que os permitirá en pocos minutos desplegar una web completamente funcional usando Nginx y React con Next.js
Lo primero que tenéis que hacer es crear el archivo docker-compose.yml
version: '3' services: nextjs-app: build: context: . ports: - "3000:3000" nginx: image: nginx:alpine ports: - "80:80" volumes: - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - nextjs-app
Ahora vamos a crear un Dockerfile:
# Use a Node.js alpine image as base FROM node:alpine as build-stage # Set the working directory in the container WORKDIR /app # Copy package.json and package-lock.json to the working directory COPY package.json package-lock.json ./ # Install dependencies RUN npm ci --only=production # Copy the rest of the application code to the working directory COPY . . # Build the Next.js application RUN npm run build # Expose port 3000 EXPOSE 3000 # Start the Next.js production server CMD ["npm", "start"]
Ahora creamos las carpetas config/nginx y añadimos el fichero llamado nginx.conf
Finalmente tenemos que copiar estos archivos en la raíz de nuestro proyecto quedando así:
.next config/nginx/nginx.conf public/ src/ docker-compose.yml Dockerfile
Esto nos permitirá ejecutar Docker. Para ello lanzamos el comando:
docker compose up -d
Y podremos acceder a la web desde http://localhost:80
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.