671766bdf372423347ab3305f3561defb5bdab78
Nginx PHP MySQL
Docker running Nginx, PHP-FPM, MySQL and PHPMyAdmin.
THIS ENVIRONMENT SHOULD ONLY BE USED FOR DEVELOPMENT!
DO NOT USE IT IN PRODUCTION!
Images to use
- Nginx (181.85 MB)
- MySQL (400.2 MB)
- PHP-FPM (635.9 MB)
- Composer (635.7 MB)
- PHPMyAdmin (102.2 MB)
- generate-certificate (9.07 MB)
Start using it
-
Download it :
git clone https://github.com/nanoninja/docker-nginx-php-mysql.git -
Run :
$ docker-compose up -d -
Open your favorite browser :
- http://localhost:8000
- https://localhost:3000 (not configured by default)
- http://localhost:8080/ (phpmyadmin)
Directory tree
.
├── bin
│ └── linux
│ └── clean.sh
├── data
│ └── db
│ ├── dumps
│ └── mysql
├── docker-compose.yml
├── etc
│ ├── nginx
│ │ └── default.conf
│ ├── php
│ │ └── php.ini
│ └── ssl
└── web
├── app
│ ├── composer.json
│ ├── src
│ └── tests
└── public
└── index.php
Connecting from PDO
<?php
$dsn = 'mysql:host=mysql;dbname=test;charset=utf8;port=3306';
$pdo = new PDO($dsn, 'root', 'root');
?>
Updating composer
docker run --rm -v $(pwd)/web/app:/app -v ~/.ssh:/root/.ssh composer/composer update
MySQL Container shell access
docker exec -it mysql bash
and
$ mysql -uroot -proot
Creating database dumps
docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
or
docker exec mysql sh -c 'exec mysqldump dbname -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/dbname.sql
Example
docker exec mysql sh -c 'exec mysqldump test -uroot -p"$MYSQL_ROOT_PASSWORD"' > $(pwd)/data/db/dumps/test.sql
Generating SSL certificates
-
Generate certificates
docker run --rm -v $(pwd)/etc/ssl:/certificates -e "SERVER=localhost" jacoelho/generate-certificate -
Configure Nginx
Edit nginx file etc/nginx/default.conf and uncomment the server section.
server { ... }
Cleaning project
./bin/linux/clean.sh $(pwd)
Description
Languages
Shell
76.7%
Batchfile
15.8%
Makefile
7.5%