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
- Lev Lazinskiy
- Lev Lazinskiy
- Terminal RSS Reader With Nom
- Setting up ANTLR4 on Windows
- SQLite DB Migrations with PRAGMA user_version
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- No-One Escapes the Permanent Underclass from Fernando Borretti
- Is it ethical to use AI? from charity.wtf
- The logical destination of LLMs from Andy Bell
- Revised rules of engineering leadership. from Irrational Exuberance
- The circus freaks of open source from Drew DeVault's blog
- Clanker: A Word For The Machine from Armin Ronacher's Thoughts and Writings
- I ran a half-marathon! from gluecko.se
- My Running Tips from Kevin Bell's Blog
Articles from blogs I follow around the net
My last 5 books - July 2026 edition
My last 5 books - July 2026 edition This is a new feature in which I will copy and paste my recent book reviews from my books page These are the last 5 books I have read. I will update in a month or 2 when I've read 5 more. I'm Starting to Worry About this...
via O'DonnellWeb July 12, 2026“Animating something and animating something well are two very different things.”
From Jakub Krehel, a new blog post about self constraint in the era when AI makes it easy to ignore constraints altogether. My caveat is that the post doesn’t fully come together for me – jumping from AI to animations and then back to AI the way the author...
via Unsung July 12, 2026Generated and suppressed demand.
Eight years ago, I wrote about my theory of restoring struggling teams, which came down to four steps: A team is falling behind if each week their backlog is longer than the week before. Solve by hiring more. A team is treading water if they’re able to get...
via Irrational Exuberance July 11, 2026Generated by openring