Deploying 3-Tier Application on Docker | Containerizing NodeJs, Mongo Express, MongoDB

https://gitlab.com/nanuchi/developing-with-docker
To start the application
Step 1: Create a docker network
docker network create mongo-network
Step 2: start MongoDB
docker run -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=password --name mongodb --net mongo-network mongo
Step 3: start mongo-express
docker run -d -p 8081:8081 -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin -e ME_CONFIG_MONGODB_ADMINPASSWORD=password --net mongo-network --name mongo-express -e ME_CONFIG_MONGODB_SERVER=mongodb mongo-express
NOTE: creating docker-network in optional. You can start both containers in a default network. In this case, just emit --net flag in docker run command
Step 4: open mongo-express from browser
http://ip address :8081
user-account db userscollection
Create a Dockerfile with the content you provided:
FROM node:13-alpine ENV MONGO_DB_USERNAME=admin \ MONGO_DB_PWD=password RUN mkdir -p /home/app COPY ./app /home/app WORKDIR /home/app RUN npm install EXPOSE 3000 CMD ["node", "server.js"]Save the Dockerfile in a directory along with your application code. Let's assume the directory is named "my-app".
Open a terminal or command prompt and navigate to the directory containing the Dockerfile and your application code ("my-app" directory).
Build the Docker image using the following command:
sudo docker build -t my-app-image .This command will build the Docker image with the tag "my-app-image". The dot (.) at the end specifies the build context as the current directory.
Once the image is successfully built, you can run a container from it and connect it to the "mongo-network" network using the following command:
docker run -d --name my-app-container --net mongo-network -p 3000:3000 my-app-imageThis command starts a container named "my-app-container" from the "my-app-image" image, connects it to the "mongo-network" network, and maps port 3000 of the container to port 3000 on the host machine.







