Quickly setup local Laravel development using docker without php installed locally
The following will create the Laravel hello world application in your current working directory, without haveing needing to have the correct php version installed locally.
docker run --rm --interactive --tty --volume $PWD:/app composer create-project --prefer-dist laravel/laravel blog
Replace 'blog' with whatever you want to call your project.
After running your directory will be populated with the Laraval source code.
You will need to change the owner of the directory from root to your user because by default the container runs as root :/
e.g.
sudo chown -R chris:chris blog/
Now you can create a docker file, build and run
Laravel Docker file
Create Dockerfile
FROM php:7.3.19-alpine AS build
WORKDIR src
Copy source code into ./src folder
COPY . .
COPY --from=composer /usr/bin/composer /usr/bin/composer
Build and optimise ./vendor folder
FROM php:7.3.19-alpine AS build
WORKDIR src
# Copy source code into ./src folder
COPY . .
COPY --from=composer /usr/bin/composer /usr/bin/composer
# Build and optimise ./vendor folder
RUN composer install --no-dev --optimize-autoloader
FROM php:7.3.19-apache-buster
COPY --from=build src /var/www/html/
RUN a2enmod rewrite
COPY vhost.conf /etc/apache2/sites-available/
RUN a2dissite 000-default.conf
RUN a2ensite vhost.conf
RUN service apache2 restart
docker build -t test .
docker run -p 8083:80 test