https://github.com/blamebutton/laravel-docker-builder
Automatically create Docker images for your Laravel application
https://github.com/blamebutton/laravel-docker-builder
docker dockerfile laravel php
Last synced: 5 months ago
JSON representation
Automatically create Docker images for your Laravel application
- Host: GitHub
- URL: https://github.com/blamebutton/laravel-docker-builder
- Owner: blamebutton
- License: mit
- Created: 2023-01-11T01:06:55.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-23T11:54:03.000Z (almost 2 years ago)
- Last Synced: 2025-07-04T20:05:26.971Z (7 months ago)
- Topics: docker, dockerfile, laravel, php
- Language: PHP
- Homepage:
- Size: 174 KB
- Stars: 97
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

[](https://packagist.org/packages/blamebutton/laravel-docker-builder)
[](https://packagist.org/packages/blamebutton/laravel-docker-builder)

## Features
* Build Docker images using the Artisan CLI
* Detect PHP version and extensions
* Bundle assets with Vite.js or Laravel Mix
* Separate NGINX and PHP-FPM images
* [Deployment examples](/.examples/) for Kubernetes and Docker Compose
## Installation
```shell
composer require --dev blamebutton/laravel-docker-builder
```
## Usage
### Detect Configuration
```shell
php artisan docker:generate --detect
```
When `--detect` is passed to the `docker:generate` command, it will automatically detect the following requirements:
* PHP version, detected using the `php` version in your `composer.json`
* PHP extensions, detected using the configuration of your project:
* Cache driver: Redis, Memcached, APC
* Database driver: MySQL, Postgres, SQL Server
* Broadcasting driver: Redis
* Queue driver: Redis
* Session driver: Redis, Memcached, APC
* Node package manager, detected using the existence of `package-lock.json` or `yarn.lock`
* Node build tool, detected using the existence of `vite.config.js` or `webpack.mix.js`
### Manual Configuration
```shell
php artisan docker:generate
```
When no options are passed to `docker:generate`, a prompt is used to configure the project's requirements.
See all available options, and their supported values, by running `php artisan docker:generate --help`.
* `-p, --php-version` - PHP version for Docker image
* `-e, --php-extensions` - PHP extensions (comma-separated) to include in Docker image
* `-o, --optimize` - Run `php artisan optimize` on container start
* `-a, --alpine` - Use Alpine Linux based images
* `-m, --node-package-manager` - Install Node dependencies using NPM or Yarn
* `-b, --node-build-tool` - Run Vite.js or Laravel Mix build step
## Configuration
### Option 1: Config File
```shell
php artisan vendor:publish --provider="BlameButton\LaravelDockerBuilder\DockerServiceProvider"
```
### Option 2: `.env`
By default, the configuration file reads the following environment variables to determine the Docker image tags.
```shell
DOCKER_NGINX_TAG=laravel-app:nginx
DOCKER_PHP_TAG=laravel-app:php
```