Ejemplos Dockerfile
Aquí tienes varios ejemplos de Dockerfile
sencillos que cubren diferentes casos de uso. Estos ejemplos pueden servir como punto de partida para proyectos básicos.
1. Servidor Web Simple con Nginx
Este Dockerfile
crea un contenedor que sirve una página HTML estática usando Nginx.
# Usar la imagen oficial de Nginx como base
FROM nginx:alpine
# Copiar el archivo HTML a la ubicación donde Nginx espera encontrarlo
COPY index.html /usr/share/nginx/html/
# Exponer el puerto 80 para el servidor web
EXPOSE 80
# Nginx ya está configurado para ejecutarse como proceso principal
2. Aplicación Node.js Simple
Este Dockerfile
configura un contenedor para ejecutar una aplicación Node.js.
# Usar la imagen oficial de Node.js como base
FROM node:14
# Crear un directorio de trabajo
WORKDIR /app
# Copiar los archivos de la aplicación al contenedor
COPY package*.json ./
COPY . .
# Instalar las dependencias de la aplicación
RUN npm install
# Exponer el puerto 3000
EXPOSE 3000
# Comando para ejecutar la aplicación
CMD ["node", "app.js"]
3. Aplicación Python Simple con Flask
Este Dockerfile
crea un entorno para ejecutar una aplicación web en Flask.
# Usar la imagen oficial de Python como base
FROM python:3.8-slim
# Establecer el directorio de trabajo
WORKDIR /app
# Copiar los archivos de la aplicación al contenedor
COPY requirements.txt ./
COPY . .
# Instalar las dependencias necesarias
RUN pip install --no-cache-dir -r requirements.txt
# Exponer el puerto 5000 para Flask
EXPOSE 5000
# Comando para ejecutar la aplicación
CMD ["python", "app.py"]
4. Script Bash Simple
Este Dockerfile
configura un contenedor que ejecuta un simple script Bash.
# Usar la imagen base de Alpine por su ligereza
FROM alpine:3.12
# Copiar el script Bash al contenedor
COPY script.sh /usr/local/bin/script.sh
# Dar permisos de ejecución al script
RUN chmod +x /usr/local/bin/script.sh
# Comando para ejecutar el script
CMD ["sh", "/usr/local/bin/script.sh"]
5. Aplicación Java Simple con Spring Boot
Este Dockerfile
está diseñado para ejecutar una aplicación Spring Boot empaquetada como un archivo JAR.
# Usar la imagen oficial de OpenJDK como base
FROM openjdk:11-jre-slim
# Establecer el directorio de trabajo
WORKDIR /app
# Copiar el archivo JAR al contenedor
COPY target/myapp.jar /app/myapp.jar
# Exponer el puerto 8080
EXPOSE 8080
# Comando para ejecutar la aplicación
CMD ["java", "-jar", "/app/myapp.jar"]
6. Contenedor para Servidor Redis
Este Dockerfile
crea un contenedor básico para ejecutar un servidor Redis.
# Usar la imagen oficial de Redis
FROM redis:alpine
# Exponer el puerto predeterminado de Redis
EXPOSE 6379
# El comando predeterminado ya está configurado en la imagen oficial
7. Servidor PHP con Apache
Este Dockerfile
configura un servidor Apache que ejecuta un archivo PHP.
# Usar la imagen oficial de PHP con Apache
FROM php:7.4-apache
# Copiar los archivos de la aplicación al directorio web de Apache
COPY src/ /var/www/html/
# Exponer el puerto 80 para el servidor web
EXPOSE 80
# Apache ya está configurado como proceso principal en la imagen base
8. Aplicación Go Simple
Este Dockerfile
construye y ejecuta una aplicación Go.
# Usar la imagen oficial de Go como base
FROM golang:1.16
# Establecer el directorio de trabajo
WORKDIR /app
# Copiar el código fuente al contenedor
COPY . .
# Compilar la aplicación Go
RUN go build -o myapp
# Exponer el puerto 8080 (si tu aplicación usa este puerto)
EXPOSE 8080
# Comando para ejecutar la aplicación
CMD ["./myapp"]
Estos ejemplos de Dockerfile
cubren una variedad de escenarios comunes y son un buen punto de partida para construir y desplegar aplicaciones en contenedores Docker. Cada ejemplo ilustra una configuración básica y puede ser adaptado según las necesidades específicas del proyecto.