diff --git a/z1/README.md b/z1/README.md new file mode 100644 index 0000000..02bff25 --- /dev/null +++ b/z1/README.md @@ -0,0 +1,60 @@ +# Docker Web Application Deployment (Without Docker Compose) + +## Overview +This project deploys a multi-container Docker application consisting of: +- **Flask Web App:** A Python Flask application that connects to a PostgreSQL database. +- **PostgreSQL Database:** Uses the official PostgreSQL image with persistent storage via a named volume. + +Both containers communicate over a custom Docker network (`app_network`). + +## Required Software +- **Operating System:** Linux (with Docker support) +- **Docker:** Installed and configured +- **Bash:** For running the provided scripts + +## Components + +### Flask Web Application +- **Image:** Built locally from the Dockerfile in the `app/` folder. +- **Container Name:** `flask_app` +- **Port Mapping:** Host port `5000` mapped to container port `5000`. +- **Environment Variables:** Set via the `docker run` command to point to the database. + +### PostgreSQL Database +- **Image:** `postgres:13` +- **Container Name:** `postgres_db` +- **Environment Variables:** + - `POSTGRES_USER=user` + - `POSTGRES_PASSWORD=password` + - `POSTGRES_DB=sampledb` +- **Volume:** Named volume `pgdata` is mounted at `/var/lib/postgresql/data` for persistent storage. + +### Virtual Network and Volume +- **Network:** `app_net` – A custom Docker bridge network for inter-container communication. +- **Volume:** `pgdata` – Persists PostgreSQL data between container restarts. + +## How to prepare, run, pause and delete the application +# Step 1: Prepare the application +# This will create the necessary volume, network, and build the Flask image. +./prepare-app.sh + +# Step 2: Run the application +# This will start the PostgreSQL database and Flask web application containers. +./start-app.sh + +# Step 3: Stop the application +# It will stop the containers +./stop-app.sh + +# Step 5: Remove the application +# This will stop and remove the containers, network, and volume. +./remove-app.sh + +## How to view the application on the web + +# Step 1: Ensure that the Flask application is running +# Make sure that the application has been started by running the ./start-app.sh script. +# The Flask application should be accessible at http://localhost:5000. + +# Step 2: Open a web browser and enter the following URL: +http://localhost:5000 \ No newline at end of file