zkt25/z1/README.md
2025-03-18 13:26:50 +00:00

63 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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_network` 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