Utilizar ENTRYPOINT en el Dockerfile
En este paso, aprenderemos cómo utilizar la instrucción ENTRYPOINT en un Dockerfile y utilizar un puerto diferente (9100).
-
En WebIDE, abra el Dockerfile
nuevamente.
-
Modifique el contenido del Dockerfile
para que sea:
FROM nginx
ENV NGINX_PORT 9100
RUN sed -i "s/listen\s*80;/listen $NGINX_PORT;/g" /etc/nginx/conf.d/default.conf
COPY index.html /usr/share/nginx/html/
COPY start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["/start.sh"]
Este Dockerfile establece NGINX_PORT
en 9100 y agrega una instrucción ENTRYPOINT
, que especifica el comando a ejecutar cuando el contenedor se inicia.
- Cree un nuevo archivo llamado
start.sh
en el mismo directorio con el siguiente contenido:
#!/bin/bash
echo "Starting Nginx on port $NGINX_PORT"
nginx -g 'daemon off;'
Este script imprime un mensaje que muestra en qué puerto se ejecutará Nginx antes de iniciar Nginx.
-
Guarde ambos archivos en WebIDE.
-
En la terminal de WebIDE, vuelva a construir la imagen de Docker con una nueva etiqueta:
docker build -t my-nginx-entrypoint.
- Ejecute un contenedor basado en la nueva imagen:
docker run -d -p 9100:9100 -e NGINX_PORT=9100 --name entrypoint-container my-nginx-entrypoint
- Verifique los registros del contenedor para ver el mensaje de inicio:
docker logs entrypoint-container
Debería ver el mensaje "Starting Nginx on port 9100" en la salida.
- Verifique que el servidor web se esté ejecutando correctamente en el nuevo puerto:
curl http://localhost:9100
Debería ver el contenido HTML del archivo index.html
mostrado en la terminal.