Dockerized Laravel and MySQL for local development
Docker is awesome. Its also quite useful for local development. The following Dockerfile and docker-compose.yml will be helpful if you want to do laravel development inside of docker. I am using Ubuntu as a base, but you can probably use the official PHP image as well. Dockerfile
FROM ubuntu:16.04RUN apt update RUN apt install -y php7.0 php7.0-zip php7.0-mbstring phpunit curl php7.0-mysql
RUN curl -sS https://getcomposer.org/installer | php RUN mv composer.phar /usr/local/bin/composer
RUN composer global require “laravel/installer”
RUN export PATH=$HOME/.config/composer/vendor/bin:$PATH
version: '2'
services:
app:
build: .
ports:
- "8000:8000"
volumes:
- .:/code
env_file: .env
working_dir: /code
command: bash -c 'php artisan migrate && php artisan serve --host 0.0.0.0'
depends_on:
- db
db:
image: "mysql:5.7"
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=$your_db
- MYSQL_USER=$your_db_user
- MYSQL_PASSWORD=$your_db_password
volumes:
- ./data/:/var/lib/mysql
ports:
- "3306:3306"
APP_ENV=local APP_KEY=$your_app_key APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=https://localhostDB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=$your_db DB_USERNAME=$your_db_user DB_PASSWORD=$your_db_password
BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null
PUSHER_APP_ID= PUSHER_KEY= PUSHER_SECRET=
Gotchas
- In order to do stuff with the database you should add the following record to your local
/etc/hostsfile# /etc/hosts
127.0.0.1 db
- You should still install
npmand runnpm installfrom your local machine so that you can do frontend stuff. - Since we define
- .:/codeas a volume, this means that all of your local changes are immediately visible in the dockerized app. - If you need to access the running app or db container you can do so with
docker-compose run app bashordocker-compose run db bash
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- 2025 Reading Log
- 3 packs
- Growing the CircleCI Community with Discourse
- My Custom Miniflux CSS Theme
- Recreating Foreign Keys with Alembic
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- Grow, Like a Tree Not a Cancer from Jim Nielsen’s Blog
- Pluralistic: All the books I reviewed in 2025 (02 Dec 2025) from Pluralistic: Daily links from Cory Doctorow
- DEP-18: A proposal for Git-based collaboration in Debian from Optimized by Otto
- [RIDGELINE] No Phones in The Ten-don Shop from Craig Mod — Writer + Photographer
- My next chapter with Mastodon from Mastodon Blog
- How many pillars of observability can you fit on the head of a pin? from charity.wtf
- The Software Essays that Shaped Me from Refactoring English
- Give Your Spouse the Gift of a Couple's Email Domain from mtlynch.io
Articles from blogs I follow around the net
Come on John
For all I know, John O'Nolan is a cool dude. He’s the founder of Ghost, a project that is also really cool. You know what’s also cool? RSS. And guess what, John just announced he’s working on a new RSS app (Reader? Tool? Service?) called Alcov…
via Manuel Moreale — Everything Feed December 5, 2025Pluralistic: The Reverse-Centaur’s Guide to Criticizing AI (05 Dec 2025)
Today's links The Reverse Centaur’s Guide to Criticizing AI: My speech for U Washington's Neuroscience, AI and Society lecture series. Hey look at this: Delights to delectate. Object permanence: Pac Man ghost algorithms; The US wrote Spain's c…
via Pluralistic: Daily links from Cory Doctorow December 5, 2025App Defaults - 2025
It’s that time of the year again: here’s my extended “frozen /uses page” for late 2025. Whenever multiple applications are listed, p marks private use, w marks software that I (have to) use at work. Changes compared to the previous year are highlighted usi…
via ttntm.me - Blog December 5, 2025Generated by openring