Update README.md
This commit is contained in:
parent
dc05d73cdd
commit
d57cb7143a
129
README.md
129
README.md
@ -1,47 +1,136 @@
|
|||||||
Last login: Mon Mar 17 20:02:32 on ttys001
|
\# Web Application Docker Deployment Documentation
|
||||||
|
Conditions for Deploying and Running the Application
|
||||||
|
To deploy and run this web application, the following software must be installed on your system:
|
||||||
|
|
||||||
The default interactive shell is now zsh.
|
# Docker
|
||||||
To update your account to use zsh, please run `chsh -s /bin/zsh`.
|
Install Docker (with Docker Compose) to create and manage containers.
|
||||||
For more details, please visit https://support.apple.com/kb/HT208050.
|
|
||||||
MacBookPro:~ puneetkhurana$ cd Documents/
|
|
||||||
MacBookPro:Documents puneetkhurana$ cd zkt25/
|
|
||||||
MacBookPro:zkt25 puneetkhurana$ cd z1/
|
|
||||||
MacBookPro:z1 puneetkhurana$ vim README.md
|
|
||||||
|
|
||||||
|
# Git
|
||||||
|
Ensure Git is installed if you're cloning the project repository.
|
||||||
|
|
||||||
|
# A terminal/command-line interface
|
||||||
|
You will need a terminal for executing shell scripts and commands.
|
||||||
|
|
||||||
|
# A web browser
|
||||||
|
Used to access the web application once it is deployed (recommended: Google Chrome or Mozilla Firefox).
|
||||||
|
|
||||||
|
# Description of the Application
|
||||||
|
This application is a basic PHP web application connected to a MySQL database. It consists of the following components:
|
||||||
|
|
||||||
|
Apache Web Server with PHP: The Apache service runs the PHP application and serves it through the web server.
|
||||||
|
|
||||||
|
MySQL Database: A MySQL database that stores user data and other application-related information.
|
||||||
|
|
||||||
|
Persistence Mechanism: Uses Docker volumes to ensure that data stored in the MySQL database persists even after the containers are stopped or removed.
|
||||||
|
|
||||||
|
Virtual Networks and Named Volumes Used by the Application
|
||||||
|
Network:
|
||||||
|
The containers are connected via a custom Docker bridge network named my_network. This allows communication between the Apache-PHP service and the MySQL service.
|
||||||
|
|
||||||
|
# Named Volume:
|
||||||
|
|
||||||
|
mysql_data: A named volume used to store the database data persistently. This ensures that even if the containers are removed or recreated, the database data will be preserved.
|
||||||
|
|
||||||
|
# Container Configuration
|
||||||
|
The application consists of the following Docker containers:
|
||||||
|
|
||||||
|
1. Apache-PHP Container
|
||||||
|
Service Name: apache
|
||||||
|
|
||||||
|
Image: Official php:apache image.
|
||||||
|
|
||||||
|
Ports:
|
||||||
|
|
||||||
|
Exposes port 8080 for accessing the web application through a browser.
|
||||||
|
|
||||||
|
Volume Mapping:
|
||||||
|
|
||||||
|
Maps the app directory from the host machine to the container, where the PHP files are stored and served.
|
||||||
|
|
||||||
|
2. MySQL Container
|
||||||
|
Service Name: mysql
|
||||||
|
|
||||||
|
Image: Official mysql image.
|
||||||
|
|
||||||
|
Ports:
|
||||||
|
|
||||||
|
Exposes port 3306 for database communication (typically used for internal communication with the Apache-PHP container).
|
||||||
|
|
||||||
|
# Volume Mapping:
|
||||||
|
|
||||||
|
Uses a named volume mysql_data for persisting database data.
|
||||||
|
|
||||||
|
# Containers Used and Brief Description
|
||||||
|
apache:
|
||||||
|
This container runs the Apache web server with PHP support. It serves the PHP files that are located in the app directory.
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
This container runs the MySQL database. It stores and manages the data for the PHP application, using the mysql_data volume for persistence.
|
||||||
|
|
||||||
|
Instructions on How to Prepare, Run, Pause, and Delete the Application
|
||||||
|
1. Prepare the Application
|
||||||
|
To set up the necessary network and volume, run the following command:
|
||||||
|
|
||||||
Start the Application**
|
|
||||||
This script **starts all services in the background**:
|
|
||||||
bash
|
bash
|
||||||
|
Copy
|
||||||
|
Edit
|
||||||
|
./prepare-app.sh
|
||||||
|
This script will:
|
||||||
|
|
||||||
|
Create the custom Docker network (my_network).
|
||||||
|
|
||||||
|
Create the named volume (mysql_data).
|
||||||
|
|
||||||
|
Set up the application directory and create a test PHP file.
|
||||||
|
|
||||||
|
2. Start the Application
|
||||||
|
To start the application and run the containers in detached mode, execute:
|
||||||
|
|
||||||
|
bash
|
||||||
|
Copy
|
||||||
|
Edit
|
||||||
./start-app.sh
|
./start-app.sh
|
||||||
|
This script will:
|
||||||
|
|
||||||
Expected output:
|
Start the Docker containers (apache and mysql).
|
||||||
|
|
||||||
Starting application...
|
Wait for a few seconds to ensure all services are up and running.
|
||||||
Application started. Access it at http://localhost:8080
|
|
||||||
|
|
||||||
|
Display a message with the URL to access the web application.
|
||||||
|
|
||||||
view the Application in a Web Browser**
|
3. Pause the Application
|
||||||
- Open **[http://localhost:8080](http://localhost:8080)**
|
To stop the running containers without deleting data, use:
|
||||||
- You should see: `Welcome to My Nginx Server!`
|
|
||||||
|
|
||||||
Pause the Application (Without Deleting Data)**
|
|
||||||
To stop the application while keeping data intact:
|
|
||||||
|
|
||||||
|
bash
|
||||||
|
Copy
|
||||||
|
Edit
|
||||||
./stop-app.sh
|
./stop-app.sh
|
||||||
|
This will:
|
||||||
|
|
||||||
Expected output:
|
Stop the containers (apache and mysql).
|
||||||
|
|
||||||
|
4. Delete the Application
|
||||||
|
To completely remove the containers, networks, and volumes, run:
|
||||||
|
|
||||||
|
bash
|
||||||
|
Copy
|
||||||
|
Edit
|
||||||
|
./remove-app.sh
|
||||||
|
This will:
|
||||||
|
|
||||||
|
# Remove the apache and mysql containers.
|
||||||
|
|
||||||
|
# Delete the custom Docker network and the named volume mysql_data.
|
||||||
|
|
||||||
|
# Instructions on How to View the Application on the Web
|
||||||
|
Once the application is running, open a web browser and navigate to:
|
||||||
|
|
||||||
|
plaintext
|
||||||
|
Copy
|
||||||
|
Edit
|
||||||
|
# http://localhost:8080/index.php
|
||||||
|
This page will test the connection to the MySQL database. If the connection is successful, a confirmation message will be displayed.
|
||||||
|
|
||||||
|
# Conclusion
|
||||||
|
This project demonstrates how to deploy a simple PHP application with a MySQL database using Docker. By using Docker Compose, the application ensures modularity and ease of deployment, while the named volume ensures that database data is persisted across container restarts.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user