Docker
Docker has captured my attention lately and has been growing exponentially for last few years. Docker has revolutionized the virtualization space and has given DevOps engineers and developers a new set of tools that can ease their development as well as infrastructure resource utilization. Mostly Node.js apps have been deployed with Docker but it is not limited to only that. If you’ve been developing apps for web using PHP and Laravel framework then you are lucky that community has developed some great tools to utilize docker in their development workflow. If you are new to DockerĀ and want to learn more about Docker then visit their website docker.com specially the section What is Docker?
Laradock
Laradock does the hard part and facilitate developers to quickly and easily setup Laravel development environment in seconds. Follow the these steps to get started.
Setup fresh environment then install Laravel inside docker
- Create project directory. e.g. myproject
- Create another directory within myproject directory for source that you will use commit to git repo. eg. app
- Clone the laradock repo inside myproject folder, this will create laradock folder
git clone https://github.com/laradock/laradock.git
- Edit the docker-compose.yml file to map to your project directory once you have it (eg. – ../app:/var/www)
- Run the following command
docker-compose up -d nginx mysql redis beanstalkd
- Enter the workspace
docker-compose exec workspace bash
- cd to /var
- Install Laravel
composer create-project laravel/laravel www
- Open your .env file and set the following
DB_HOST=mysql REDIS_HOST=redis QUEUE_HOST=beanstalkd
Now open your browser and visit http://localhost
You will see running Laravel app. That was cool!
You can also connect to mysql using these settings.
Host: localhost User: root Password: root
If you want to add more services see the official laradock docs. It support tons of other services like memcache, pgsql etc.
Daily Use
Following are some docker related commands that you want to use on daily basis once your development environment is setup.
- To bring up the servers to run application
docker-compose up -d nginx mysql
- Enter workspace container to run commands like artisan, composer, phpunit, gulp etc.
docker-compose exec workspace bash
or on Windows PowerShell
docker exec -it {containerid} bash
- List current running containers
docker ps
- List current project containers
docker-compose ps
- Close all running containers
docker-compose stop
- Delete all existing containers
docker-compose down
- View the log files
docker logs {container-name}
Add a Comment