Per creare una pagina web con HTML, CSS e JavaScript all’interno di un Docker container, possiamo configurare un Dockerfile che include un server web leggero, come Nginx o Apache, per servire i file della pagina web. Vediamo un esempio completo usando Nginx:
Passaggi per Creare e Servire una Pagina Web in Docker
-
Crea la Struttura della Directory:
- Crea una directory principale, e al suo interno, crea una cartella per i file web e un Dockerfile.
plaintext
progetto_web/ ├── Dockerfile └── web/ ├── index.html ├── style.css └── script.js -
Scrivi il Codice della Pagina Web:
- Crea i file
index.html,style.cssescript.jsall’interno della cartellaweb/.
index.html:
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login Page</title> <link rel="stylesheet" href="style.css"> </head> <body> <h2>Login</h2> <form id="loginForm"> <label for="username">Username:</label> <input type="text" id="username" name="username" required><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password" required><br><br> <button type="submit">Login</button> </form> <script src="script.js"></script> </body> </html>style.css:
css
Copy code
body { font-family: Arial, sans-serif; text-align: center; } form { display: inline-block; margin-top: 20px; } label, input { display: block; margin: 5px 0; }script.js:
javascript
Copy code
document.getElementById("loginForm").addEventListener("submit", function(event) { event.preventDefault(); alert("Form submitted!"); }); - Crea i file
-
Crea il Dockerfile:
- Nel Dockerfile, configuriamo Nginx per servire questi file web.
Dockerfile:
Dockerfile
Copy code
# Usa l'immagine base di Nginx FROM nginx:latest # Copia i file della pagina web nella directory predefinita di Nginx COPY web/ /usr/share/nginx/html/ # Espone la porta 80 per accedere al server EXPOSE 80- Questo Dockerfile:
- Usa
nginx:latestcome immagine base. - Copia i file della pagina web nella directory
/usr/share/nginx/html/, che è la directory predefinita dove Nginx cerca i file da servire. - Espone la porta
80per accedere al sito web.
- Usa
-
Costruisci l’Immagine Docker:
- Nella directory principale (
progetto_web), esegui il comando per costruire l’immagine Docker:
bash
Copy code
docker build -t web_server . - Nella directory principale (
-
Avvia il Container:
- Una volta che l’immagine è stata costruita, puoi avviare un container basato su di essa e mapparla alla porta locale per accedere al sito dal browser.
bash
Copy code
docker run -d -p 8080:80 web_server- Questo comando mappa la porta
80del container alla porta8080del tuo computer. Così, puoi visualizzare la pagina web aprendohttp://localhost:8080nel browser.
-
Visualizza la Pagina Web:
- Apri un browser e vai su
http://localhost:8080. Dovresti vedere la tua pagina di login in esecuzione all’interno del Docker container.
- Apri un browser e vai su
Riepilogo Comandi
-
Build dell’immagine Docker:
bash
Copy code
docker build -t web_server . -
Run del container:
bash
Copy code
docker run -d -p 8080:80 web_server -
Visualizza la pagina: Apri
http://localhost:8080nel browser.
Con questa configurazione, hai un ambiente Docker che serve una pagina HTML statica con Nginx, perfetto per testare o condividere una semplice applicazione web