By utilizing container technology like Docker, we can have an identical environment for development and production. But, working in a development environment requires us to be able to change the source codes directly. We can define multi-stage procedures in the Dockerfile and specific commands to run the container. For example, we have a Node.js program that will be shipped using a container. 1. Create a Dockerfile with stages for development and production. # syntax=docker/dockerfile:1 FROM node:14.17.1 as base WORKDIR /app COPY ["package.json", "package-lock.json", "./"] FROM base as development ENV NODE_ENV=development RUN npm ci COPY . . CMD ["nodemon", "-L", "app.js"] FROM base as production ENV NODE_ENV=production RUN npm ci --production COPY . . CMD ["node", "app.js"] In this example, the program for development is run using nodemon therefore we need to install nodemon first by npm i -D node...