Laravel in docker


Install Laravel

If you have a repo ready then clone it into a directory called laravel.

If you want a fresh install then skip to the next step.


Make sure your db name is the same in your docker-compose.yml


npm install
Do this now so the docker image can read the volume.

docker up

docker-compose up
Along with mariadb, laravel and phpmyadmin; I think composer install gets run.


Go to your phpmyadmin image and upload it.


  • Turn your localhost webserver off (e.g. apachectl).
  • docker-compose down -v will delete the volumes and allow you to try again with a clean install.

Elastic beanstalk Laravel

Amazon account

Create a new IAM user access_id and secret_key.

Elastic beanstalk CLI

Please install:

App repo

Clone your repo into a new directory and go to it.

Fire up a new EB instance

$ eb init
If you have multiple profiles in your ~/.aws/config
$ eb init --profile name

Deploy to staging

For the initial deployment.
This is going to fail because we haven’t uploaded our configs.
We want classic deployment.
$ eb create environment_name --database

Run on deployment

Add these to your project before you deploy:

$ eb deploy

App config

Set the APP_URL in configuration > software configuration.
e.g. http://localhost or

Database config

We don’t need to do anything here because reads the server variables.

S3 bucket config

Production environment

Clone the staging environment in AWS console. Initially it will fail. 

Database config

  • Allow office IP 
  • Copy the data over to the new DB

Route 53
Create a hosted zone.
Point domain name to AWS name servers.
Create aliases.

Create SSL cert

Redirect to https

Include the redirect code in .ebextensions/01setup.config