# Docker for local development
Since there are a lot of moving pieces, starting up each web client, server together with mongo database can be challenging. These services should be running at the end of it.
- Shopping Web Application
- Shopping Server
- Admin Web Application
- Admin Server
- Redis Server
For the local development, you can utilize Docker in your local machine to do all the setup for you. Then, you can directly access the entire application locally without having to go to individual projects and setting it up.
If you do not have Docker in your local machine, go to https://www.docker.com/products/docker-desktop to download the app.
# Project Setup
# Initiate Docker Process
Prerequisite: You need Docker installed in your local machine and should have access to
To install all the necessary components and start your suite of applications, go to Veniqa repo.
> cd <Your Path>/Veniqa
Then, start the setup process by running the following command:
> docker-compose up
You can also use Docker's Buildkit which will make the docker build process significantly faster.
If you want to learn more about Docker Buildkit, refer to this document: https://docs.docker.com/develop/develop-images/build_enhancements/
If you would like to use the Docker's Buildkit, you can do so by running the following command:
> COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose up
# What is
docker-compose is creating multiple images and starting multiple containers each necessary for the application to run. These steps happen with
# Mongo Setup
This step creates a mongo instance in a container. It exposes port
27000 if you want to access mongo through tools like
Robo3T or CLI.
# Redis Setup
Redis instance is also created since the application uses session caching. The exposed port is
# Shopping Server Setup
Shopping Server is also started in a container. It also features hot-reloading. So, every time you make any changes in the server code, it is automatically reflected.
# Admin Server Setup
Admin Server is also started in a container. It features hot-reloading as well.
# Shopping Web Client Setup
Shopping Web app is started in a container with hot-reloading enabled.
# Admin Web Client Setup
Admin Web App is started in a container with hot-reloading as well.
# Modify the DB and Cache connections
If you want to modify the default instances of using docker's mongo and redis services, you can also provide the connection details to your own DB. To do so, you need to modify the environment variables in
docker-compose.yml file in the root of the directory.
# Default logins
# Shopping Platform
You can sign up as a user.
Or duplicate an existing user in mongo
users collection and replace the
password field with email and password hash for the following admin user from
# Admin Platform
The following user with SUPERADMIN privilege is available as default.