zkt25/z1
2025-03-18 13:27:22 +00:00
..
app add other folders 2025-03-18 13:27:22 +00:00
prepare-app.sh add folders 2025-03-18 13:26:50 +00:00
README.md add folders 2025-03-18 13:26:50 +00:00
remove-app.sh add folders 2025-03-18 13:26:50 +00:00
start-app.sh add folders 2025-03-18 13:26:50 +00:00
stop-app.sh add folders 2025-03-18 13:26:50 +00:00

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