Docker + Lumen with Nginx, MySQL, and Memcached
Why?
Setting up an entire Lumen stack can be time consuming. This repo is a quick way to write apps in PHP using Lumen from an any Docker client. It uses docker-compose to setup the application services, databases, cache, etc...
Clone this repo
git clone https://github.com/saada/docker-lumen.git
cd docker-lumen
Create Lumen App
now, create the app in the images/php
directory named app
docker run --rm -it -v $(pwd)/images/php:/app $(docker build -q .) composer create-project --prefer-dist laravel/lumen ./app
Configuration
There are two configurations using .env
files. One .env
file for docker-compose.yaml and another for the php application.
# copy both files and make changes to them if needed
cp .env.docker.example .env
cp .env.app.example images/php/app/.env
To change configuration values, look in the docker-compose.yml
file and change the php
container's environment variables. These directly correlate to the Lumen environment variables.
Docker Setup
Docker for Mac
Docker for Windows
Docker for Linux
Build & Run
docker-compose up --build -d
Navigate to http://localhost:80 and you should see something like this
Success! You can now start developing your Lumen app on your host machine and you should see your changes on refresh! Classic PHP development cycle. A good place to start is images/php/app/routes/web.php
.
Feel free to configure the default port 80 in docker-compose.yml
to whatever you like.
Stop Everything
docker-compose down
Running Artisan commands
docker-compose exec php sh
# inside the container
cd ..
php artisan migrate
php artisan cache:clear
Contribute
Submit a Pull Request!