-
Before installing project make sure the following prerequisites have been met.
-
We’ll download the code from its repository on GitHub.
-
By this point we’ll have all the project pieces in place.
-
Use Makefile [
Optional
]When developing, you can use
Makefile
for doing recurrent operations. -
When running, you can use docker commands for doing recurrent operations.
To run the docker commands without using sudo you must add the docker group to your-user:
sudo usermod -aG docker your-user
For now, this project has been mainly created for Unix (Linux/MacOS)
. Perhaps it could work on Windows.
All requisites should be available for your distribution. The most important are :
Check if docker-compose
is already installed by entering the following command :
which docker-compose
Check Docker Compose compatibility :
The following is optional but makes life more enjoyable :
which make
On Ubuntu and Debian these are available in the meta-package build-essential. On other distributions, you may need to install the GNU C++ compiler separately.
sudo apt install build-essential
You should be careful when installing third party web servers such as MySQL or Nginx.
This project use the following ports :
Server | Port |
---|---|
MariaD | 4000 |
PHPMyAdmin | 4001 |
To install Git, download it and install following the instructions :
git clone https://github.com/r0drigocarvalho/docker-mariadb-phpmyadmin
Go to the project directory :
cd docker-mariadb-phpmyadmin
.
├── Makefile
├── README.md
├── data
│ └── db
│ ├── dumps
│ └── mysql
├── doc
├── docker-compose.yml
└── web
├── app
└── composer.json
-
Start the application :
docker-compose up -d
Please wait this might take a several minutes...
docker-compose logs -f # Follow log output
-
Open your favorite browser :
- http://localhost:4001 PHPMyAdmin (username: dev, password: dev)
-
Stop and clear services
docker-compose down -v
When developing, you can use Makefile for doing the following operations :
Name | Description |
---|---|
clean | Clean directories for reset |
composer-up | Update PHP dependencies with composer |
docker-start | Create and start containers |
docker-stop | Stop and clear all services |
logs | Follow log output |
mysql-dump | Create backup of all databases |
mysql-restore | Restore backup of all databases |
Start the application :
make docker-start
Show help :
make help
docker exec -it mysql bash
and
mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD"
mkdir -p data/db/dumps
source .env && docker exec $(docker-compose ps -q mariadb) mysqldump --all-databases -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" > "data/db/dumps/db.sql"
source .env && docker exec -i $(docker-compose ps -q mariadb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/db.sql"
Notice:
Replace "YOUR_DB_NAME" by your custom name.
source .env && docker exec $(docker-compose ps -q mariadb) mysqldump -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" --databases "$MYSQL_DATABASE" > "data/db/dumps/"$MYSQL_DATABASE".sql"
source .env && docker exec -i $(docker-compose ps -q mariadb) mysql -u"$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASSWORD" < "data/db/dumps/"$MYSQL_DATABASE".sql"
Connecting MySQL from PDO
<?php
try {
$dsn = 'mysql:host=mysql;dbname=test;charset=utf8;port=3306';
$pdo = new PDO($dsn, 'dev', 'dev');
} catch (PDOException $e) {
echo $e->getMessage();
}
?>
Any thought, feedback or (hopefully not!)