Update z1/README.md
This commit is contained in:
parent
71cc75c7a0
commit
046f0bfe67
133
z1/README.md
133
z1/README.md
@ -1,65 +1,68 @@
|
||||
# Docker Web Application
|
||||
|
||||
## Overview
|
||||
This is a Dockerized web application consisting of two services:
|
||||
- **Web Service:** A simple Python Flask application serving HTTP endpoints.
|
||||
- **Database Service:** A MySQL 8.0 database that stores its data in a persistent volume.
|
||||
|
||||
The web service demonstrates basic functionality and includes an endpoint (`/dbtest`) to test connectivity with the database service.
|
||||
|
||||
## Deployment Requirements
|
||||
- **Docker:** Ensure Docker is installed and running.
|
||||
- **Docker Compose:** Version 3.8 or later is required to run the multi-container application.
|
||||
|
||||
## Application Architecture
|
||||
- **Virtual Network:**
|
||||
A custom Docker network `app-network` is used to allow seamless communication between containers.
|
||||
|
||||
- **Named Volume:**
|
||||
A persistent volume `db_data` is defined to store MySQL database data, ensuring data persistence between container restarts.
|
||||
|
||||
## Container Configurations
|
||||
- **Web Service Container:**
|
||||
- **Image:** Custom built from the provided `Dockerfile`.
|
||||
- **Port:** Exposes port `5000`.
|
||||
- **Environment Variables:** Set for database connectivity (e.g., `MYSQL_HOST`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_DATABASE`).
|
||||
- **Restart Policy:** Configured to always restart on failure.
|
||||
|
||||
- **Database Service Container:**
|
||||
- **Image:** Official `mysql:8.0` image.
|
||||
- **Ports:** Exposes port `3306`.
|
||||
- **Environment Variables:** Defines `MYSQL_ROOT_PASSWORD` and `MYSQL_DATABASE` for initial configuration.
|
||||
- **Volume:** Uses named volume `db_data` for data persistence.
|
||||
- **Restart Policy:** Configured to always restart on failure.
|
||||
|
||||
## Used Containers
|
||||
- **web:** The Flask-based web server.
|
||||
- **db:** The MySQL database server.
|
||||
|
||||
## How to Use the Application
|
||||
|
||||
1. **Prepare the Application:**
|
||||
Run the following command to build images and create required networks/volumes:
|
||||
```bash
|
||||
./prepare-app.sh
|
||||
|
||||
2. **Start the Application:**
|
||||
Launch the containers with:
|
||||
./start-app.sh
|
||||
You should see a message:
|
||||
Running app ...
|
||||
The app is available at http://localhost:5000
|
||||
|
||||
3. **Interact with the Application:**
|
||||
|
||||
• Open your web browser and go to http://localhost:5000 to view the home page.
|
||||
• Visit http://localhost:5000/status for the application status.
|
||||
• Visit http://localhost:5000/dbtest to test the database connectivity.
|
||||
|
||||
4. **Stop the Application:**
|
||||
To stop all running services without removing their state:
|
||||
./stop-app.sh
|
||||
|
||||
5. **Remove the Application:**
|
||||
When you want to completely remove all containers, networks, and volumes:
|
||||
./remove-app.sh
|
||||
# Docker Web Application
|
||||
|
||||
## Overview
|
||||
This is a Dockerized web application consisting of two services:
|
||||
- **Web Service:** A simple Python Flask application serving HTTP endpoints.
|
||||
- **Database Service:** A MySQL 8.0 database that stores its data in a persistent volume.
|
||||
|
||||
The web service demonstrates basic functionality and includes an endpoint (`/dbtest`) to test connectivity with the database service.
|
||||
|
||||
## Deployment Requirements
|
||||
- **Docker:** Ensure Docker is installed and running.
|
||||
- **Docker Compose:** Version 3.8 or later is required to run the multi-container application.
|
||||
|
||||
## Application Architecture
|
||||
- **Virtual Network:**
|
||||
A custom Docker network `app-network` is used to allow seamless communication between containers.
|
||||
|
||||
- **Named Volume:**
|
||||
A persistent volume `db_data` is defined to store MySQL database data, ensuring data persistence between container restarts.
|
||||
|
||||
## Container Configurations
|
||||
- **Web Service Container:**
|
||||
- **Image:** Custom built from the provided `Dockerfile`.
|
||||
- **Port:** Exposes port `5000`.
|
||||
- **Environment Variables:** Set for database connectivity (e.g., `MYSQL_HOST`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_DATABASE`).
|
||||
- **Restart Policy:** Configured to always restart on failure.
|
||||
|
||||
- **Database Service Container:**
|
||||
- **Image:** Official `mysql:8.0` image.
|
||||
- **Ports:** Exposes port `3306`.
|
||||
- **Environment Variables:** Defines `MYSQL_ROOT_PASSWORD` and `MYSQL_DATABASE` for initial configuration.
|
||||
- **Volume:** Uses named volume `db_data` for data persistence.
|
||||
- **Restart Policy:** Configured to always restart on failure.
|
||||
|
||||
## Used Containers
|
||||
- **web:** The Flask-based web server.
|
||||
- **db:** The MySQL database server.
|
||||
|
||||
## How to Use the Application
|
||||
|
||||
1. **Prepare the Application:**
|
||||
Run the following command to build images and create required networks/volumes:
|
||||
```bash
|
||||
./prepare-app.sh
|
||||
|
||||
2. **Start the Application:**
|
||||
Launch the containers with:
|
||||
```bash
|
||||
./start-app.sh
|
||||
You should see a message:
|
||||
Running app ...
|
||||
The app is available at http://localhost:5000
|
||||
|
||||
3. **Interact with the Application:**
|
||||
|
||||
• Open your web browser and go to http://localhost:5000 to view the home page.
|
||||
• Visit http://localhost:5000/status for the application status.
|
||||
• Visit http://localhost:5000/dbtest to test the database connectivity.
|
||||
|
||||
4. **Stop the Application:**
|
||||
To stop all running services without removing their state:
|
||||
```bash
|
||||
./stop-app.sh
|
||||
|
||||
5. **Remove the Application:**
|
||||
When you want to completely remove all containers, networks, and volumes:
|
||||
```bash
|
||||
./remove-app.sh
|
Loading…
Reference in New Issue
Block a user