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