Аргументы сценариев в docker -составить файл - PullRequest
0 голосов
/ 06 февраля 2020

В моем docker -компонентном файле (docker-compose.yaml) я хотел бы установить аргумент на основе небольшого сценария оболочки, например:

services:
  backend:
    [...]
    build:
      [...]
      args:
        PKG_NAME: $(dpkg -l <my_package>)

В Dockerfile я прочитал этот аргумент, подобный следующему:

ARG PKG_NAME

Прежде всего: я знаю, что этот подход зависит от ОС (требует dpkg), но для начала я был бы рад запустить его на Debian. Кроме того, это нормально, если значение является пустой строкой.

Однако docker-compose up выдает эту ошибку:

ERROR: Invalid interpolation format for "build" option in service "backend": "$(dpkg -l <my_package>)"

Есть ли способ динамически указать аргумент в docker составить файл через скрипт оболочки (или другим способом)?

1 Ответ

0 голосов
/ 06 февраля 2020

Вы можете использовать только подстановку переменных, как описано в создать файл документации

Вы пытаетесь внедрить конструкцию оболочки, и это не поддерживается.

Документация как несколько примеров того, как передать переменные в файл . В вашем случае вы можете:

  1. экспортировать переменную в вашей среде:
export MY_PACKAGE=$(dpkg -l <my_package>)
используйте эту переменную в вашем файле компоновки по умолчанию:
      args:
        PKG_NAME: "${MY_PACKAGE:-some_default_pkg}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...