[Docker] Run a command inside Docker container
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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步