Simple docker environment that allows you to run applications such as Symfony
Laravel
or any custom PHP-like project.
This LEMP + composer stack also includes PhpMyAdmin to allow you to manipulate your data even easier.
It is also shipped with vim, nano, curl, and many more useful tools!
Symfony installation guide 🔥| Laravel installation guide 🚀
Check the Wiki for further explanation.
Do you want to help us improve the environment or did you found a bug? Let us know.
-
Clone the repository:
git clone https://github.com/Josee9988/Docker-Skeleton-LEMP.git
-
Go to the cloned project directory:
cd Docker-Skeleton-LEMP
-
Modify the .env environment variables as you please.
###> Docker-Skeleton-LEMP-Config ### MYSQL_DATABASE=skeletondb MYSQL_USER=dev MYSQL_PASSWORD=1234 MYSQL_ROOT_PASSWORD=root HTTP_PORT=80 PHPMYADMIN_PORT=9000 MYSQL_PORT=3306 APPLICATION_NAME=skeletonApp ###> Docker-Skeleton-LEMP-Config ###
-
Build and test the container is successfully working
docker-compose up -d
- When you are done, visit the test page on the following URL:
http://localhost
NOTE: If you change the 'HTTP_PORT' you will have to specify the port at the end of the URL. - Visit the PhpMyAdmin page at:
http://localhost:9000
and log in: (root/root or dev/1234)
- When you are done, visit the test page on the following URL:
-
Initialize your Symfony/Laravel/PHP app.
- Copy the 'Docker-Skeleton-LEMP-Config' .env config to your clipboard to not lose your configuration.
- Create/copy your new Symfony/Laravel/PHP files keeping the
/docker/
directory and thedocker-compose.yaml
file. - Add the 'Docker-Skeleton-LEMP-Config' .env config in your new .env file.
Service | Port | Path |
---|---|---|
Nginx (Your App) | 80 | http://localhost |
PhpMyAdmin | 9000 | http://localhost:9000 |
MySQL | 3306 | N/A |
If you want to run a specific composer or MySQL commands or any kind of command inside the container you can easily do it with:
NOTE: 'skeletonApp' is the default application name. If you change this value in the .env file make sure to run the commands with your own project name.
- Access MySQL terminal.
docker exec -it skeletonApp-mysql bash # to access MySQL CLI
- Access composer, and your own project.
docker exec -it skeletonApp-phpfpm bash # to run any other command inside the container
.
├── docker
│ ├── Dockerfile
│ ├── mysql
│ │ └── mysql-data
│ ├── nginx
│ │ ├── default.conf
│ │ └── logs
│ └── php
│ ├── logs
│ └── php-ini-overrides.ini
├── docker-compose.yaml
├── LICENSE
├── public
│ ├── index.php
│ └── README.md
└── README.md
If you should your MySQL environment variables you will have to re-create the docker container.
-
Remove all the MySQL data
sudo rm -rfv docker/mysql/mysql-data/ && mkdir -p docker/mysql/mysql-data
-
Recreate the container
docker-compose up -d --build --force-recreate # will rebuild the container.
-
Then, you can restart you can re-run your app as normal.
docker-compose up -d
⚠️ Remember that this docker environment does not guarantee a 100% effectiveness as it is being tested yet, and may have some issue at some point. Use it at your own risk and always do backups of your code.⚠️
Made with a lot of ❤️❤️ by @Josee9988