Dockerizing Your Development Environment from Scratch
I frequently speak with individuals on how to setup work environments. There’s still a large community that rejects Docker; I’m assuming because they don’t know how to use it fully. In this article, I want to show how to use Docker to setup an environment on your computer. That’s all you need. You won’t need anything else and it doesn’t matter which operating system you’re using. Never will you have to worry about changing versions on your computer. You can do it all through Docker.
New Projects
If we visit the Laravel documentation, it goes through the setup process for each environment. For example, for macOS and Linux, it states to use this command:
curl -s https://laravel.build/example-app | bash
Since curl
and bash
are both installed out of the box with macOS environments, we don’t have to worry about that. Just run the command.
Once installed, it’ll specify to run ./vendor/bin/sail up
to start the container. That container will start. You’ll be able to access your Docker environment, click on the Laravel container and access the terminal inside of the container. From there you can run all of your commands that involve composer
or npm
since they’re already pre-loaded with your Docker environment.
Open your Docker Desktop to see your project running.
Click on laravel.test-1
to open the container and then click on the terminal
tab. From now on, this is where we’ll enter all of our commands from.
That’s it for new projects. As easy as it gets.
Existing Projects
There are a couple of things that are different that we need to do. Believe it or not, git is something that’s installed by default on most Mac and Linux machines. However, if it’s not, we can grab the git image.
Open your terminal and run the following command:
docker pull alpine/git
This will allow us to use git
from now on. As soon as it’s pulled, you can start executing the commands, such as cloning a project.
docker run -ti --rm -v ${HOME}:/root -v $(pwd):/www alpine/git clone https://github.com/dinocajic/youtube-laravel
I have a www
folder in my main directory, which is why I listed $(pwd):/www
.
Once the project is cloned, we need to run composer install
, but we don’t have composer on our machine. Let’s grab composer
.
docker pull composer
We can now run composer commands, such as the install command.
docker run --rm --interactive --tty \
--volume $PWD:/www/youtube-laravel \
composer install
We want to run the composer install
command in the directory that contains our project. This will install all of our vendor
files. As soon as that’s complete, we can now run ./vendor/bin/sail up
to start our project. We can then run all of our other commands from inside of the Docker container terminal, such as:
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
npm install
npm run dev
I hope that you see how simple Docker is to use. You don’t need to know much about it, you just need to use to docs. For example, read the docs and you’ll see that the commands listed here are directly pulled from those images.
https://hub.docker.com/_/composer?source=post_page—–158ae2e2727——————————–
https://hub.docker.com/r/alpine/git?source=post_page—–158ae2e2727——————————–