For example you are working in a backend project, you have setup Dockerfile:
FROM node:10.16.0-stretch ENV APP_DIR /app RUN mkdir $APP_DIR WORKDIR $APP_DIR COPY package.json yarn.lock $APP_DIR/ RUN yarn install --pure-lockfile COPY . $APP_DIR
Here is the .env:
BUNDLE_SRC=http://localhost:1337/app.js HOST_DB=localhost PORT_WEB=4010 PORT_DB=3020
Because we want to setup Database as well, therefore we need to use Docker compose as well:
// docker-compose.yml version: '2' services: app: build: . command: yarn server environment: - 'PORT_WEB=8080' expose: - '${PORT_WEB}' ports: - '${PORT_WEB}:${PORT_WEB}' volumes: - '.:/app' - '/app/node_modules' depends_on: - db db: image: postgres:9.6.3 expose: - '5432'
For now, we can run the container by using:
docker-compose up
But if we need to install a new package, we can do inside container;
docker exec -it backend_app_1 /bin/bash
It enable us to run command inside docker, so we can do:
npm i --save pg
If we want to exit command mode, we can do:
exit