[Docker] Выполнить команду внутри контейнера Докер

Например, вы работаете в проекте бэкэнда, у вас есть настройки Dockerfile:

ОТ узла: 10.16.0- натяжного 

ENV APP_DIR / приложение
 
RUN MKDIR $ APP_DIR 

WORKDIR $ APP_DIR 

COPY package.json yarn.lock $ APP_DIR / 

RUN пряжи установить --pure- файла блокировки 

COPY. $ APP_DIR

 

Вот .env:

BUNDLE_SRC = HTTP: // локальный: 1337 / app.js 
HOST_DB = локальный 
PORT_WEB = 4010 
PORT_DB = 3020

 

Поскольку мы хотим, чтобы в базу данных настройки, а также, следовательно, мы должны использовать Docker сочинить, а также:

// докер-compose.yml 

версия: '2' 
услуги: 
  приложение: 
    сборки. 
    Сервер пряжи: команда 
    окружающей среды: 
      - 'PORT_WEB = 8080' 
    разоблачают: 
      - '$ {PORT_WEB}' 
    порты: 
      - '$ {PORT_WEB}: $ {PORT_WEB} 
    тома: 
      - : '/ приложение.' 
      - «/ приложение / node_modules ' 
    depends_on: 
      - дб 

  дб: 
    изображение: Postgres: 9.6.3 
    разоблачить: 
      - '5432'

 

На данный момент мы можем запустить контейнер с помощью:

докер-компоновать до

 

Но если нам нужно установить новый пакет, мы можем сделать внутри контейнера;

Докер Exec -это backend_app_1 / бен / Баш

Это позволит нам выполнить команду внутри грузчика, так что мы можем сделать:

NPM я --save пг

 

Если мы хотим, чтобы выйти из режима командной строки, мы можем сделать:

выход

 

рекомендация

отwww.cnblogs.com/Answer1215/p/11028525.html