Skip to content

Laravel & Docker, Zero config with Vessel

Posted on:November 16, 2017

This article is a step-by-step to get started with Vessel ( the new way to setup the Laravel setup config with docker).

If your are not familiar with docker you can check my last article “ A step by step guide to setup PHP (Laravel) environment (Linux)”.

Itis a long time that I am a big fan of chris fideo the author of servers for hackers ,one of the most rich source of content to learn server’s configurations , security ,database,docker and much more DevOps topics.

Dockerizing your Application is one of the amazing free course, it’s a step-by-step docker workflow to develop a breeze for your application. According to Chris,Vessel is the result of this docker workflow more is an official that everyone could easily use.

Let’s give it a try

Vessel is a lightweight docker environment for Laravel, that means it is just a small set of files that set up a local docker development environment per project and there is no extra thing to install globally, expect Docker system itself.

Install Docker and Docker-compose

Docker is an open source project based on Linux container, if you are not familiar yet with docker, this article “ A Beginner-Friendly Introduction to Containers, VMs and Docker ” by Preethi Kasireddy is the ideal place to take your first step.

At this moment Vessel only works on Mac and Linux because it uses a bash script to run Docker commands.

For Linux Ubuntu distribution the easiest way to install docker is by the following:

Terminal window
curl -fsSL get.docker.com | sudo sh
sudo usermod -aG docker your-user // add your user to docker group

To Install docker compose run this command to download the latest version :

Terminal window
sudo curl -L [https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname](https://github.com/docker/compose/releases/download/1.17.0/docker-compose-%60uname) -s`-`uname -m` -o /usr/local/bin/docker-compose

Next,Apply executable permissions to the binary.

Terminal window
sudo chmod +x /usr/local/bin/docker-compose

Learn more about docker installation : docker , docker-compose

Get Started with Vessel

First you need to create a Laravel project to start with by the following :

Terminal window
composer create-project prefer-dist laravel/laravel vessel_test

Now and as I mention before Vessel is lightweight docker environment includes a Laravel service provider that makes easy and simple to start your own development setup. All you need to do in order to start your dev setup with vessel :

# Install Vessel into your project

Terminal window
composer require shipping-docker/vessel

# Publish the vessel command and Docker files

Terminal window
php artisan vendor:publish provider=”Vessel\VesselServiceProvider”

# Run this once to initialize project # Must run with “bash” until initialized

Terminal window
bash vessel init

The first time you start up an application with Vessel using the init command, vessel will download the following official Docker images:

  • PHP 7.1
  • MySQL 5.7
  • Redis
  • NodeJS with NPM, Yarn, and Gulp

Start vessel by running :

Terminal window
cd vessel_test
./vessel start

Head to http://localhost in your browser and see your Laravel site!

And at last, also Vessel has good documentation that covers everything you need to know to get started : official documentation

Bonus : Vessel Cheat Sheet


Thanks for reading! If you think other people should read this, clap for me, tweet and share the post. Remember to follow me on Medium so you can get notified about my future posts.