Express REST API with Docker
Álvaro José Agámez Licha
Fullstack Developer at Zagalabs
Docker
Before WSL 2, working with Docker on Windows was not a very easy option, but now everything works like a charm, thanks to the fact that WSL 2 actually includes a full Linux kernel and Microsoft worked hand by hand with the Docker Team to make this integration possible.
The first step is download and install Docker Desktop 2.3.0.2 or a later release and restart your computer.
Docker
Now we need to add our local user to the docker-users group to be able to run Docker Desktop. To do this we need to run the following commands in a Powershell console with administrator privileges.
# With this Powershell command we get our username
PS > Get-LocalGroupMember -Group "Users"
PS > Add-LocalGroupMember -Group "docker-users" -Member "COMPUTER-ID\username"
Docker
Because we will Docker with a standard user, we need to execute docker-compose with sudo inside WSL.
$ sudo docker-compose up -d
Agenda
- I will be focus on code, so I will explain a boilerplate that I built for this application type and after that we will create the code for the API.
- I will explain my docker and docker-compose strategy and why I do this.
- I will show you some tools that I use for my docker development.
- Questions.
Boilerplate
The boilerplate have some structure and configurations to make a quick start. I try to follow a series of good practices for Express applications and others on how to structure a REST API.
Docker
We have to reduce the possibility to expose sensitive information, so we NEVER owe this kind of information in Docker or docker-compose files.
For this reason I set all the sensitive a docker-compose.override.yml that NEVER is stored in the Git repository.
Tools
- WSL: I personally use WSL to develop, because I was TIRED of dealing with VPNs in Linux.
- DockStation: For me the best docker GUI client, I used in Linux and now in Windows.
- VS Code: Nothing new to add for the best OpenSource IDE.
- Postman: Really powerfull tool to test our APIS. Insomnia is another very good option.
Ready to Write Some Great Code
Express REST API in Docker
By Alvaro Agamez
Express REST API in Docker
- 564