Python Docker API Как мы устанавливаем переменную окружения пути? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь установить переменную среды PATH внутри контейнера с помощью Python Docker API, но, похоже, не работает, контейнер не запускается

Кто-нибудь есть идеи, как установить переменную PATH env, другие envфайл переменных работает.

Я вижу следующую ошибку: ошибка выполнения OCI во время выполнения: exec fail: container_linux.go: 344: запуск процесса контейнера вызвал "exec: \" bash \ ": исполняемый файл не найден в $ PATH": неизвестно

(exitCode, socConn) = self.container.exec_run('bash -e build/otin/BashCheckGCCVersion.sh',socket=True,environment=["PATH=/usr/lib64/ccache"]) 

 or


 environment=[
        "CCACHE_DIR=/work/.ccache",
        "PATH=/usr/lib64/ccache",
        "BUILDS_ALL_TIME=" + sys.argv[2],
        "PATCH_10.2=" + sys.argv[1]],
    working_dir="/OTINBuild",

Ответы [ 3 ]

0 голосов
/ 28 марта 2019

Имеет ли образ докера команду bash.Попробуйте другие общие команды, например sh, ls вместо bash.

0 голосов
/ 10 июля 2019

Если вы используете словарь для настройки переменной среды, она будет работать так:

environment = {"Name_Variable":"Name_Path","Name_Variable2":"Name_Path2"...}
(exitCode, socConn) = self.container.exec_run('bash -e build/otin/BashCheckGCCVersion.sh',socket=True,environment=environment)

Если вы попытаетесь проверить, работает ли она с помощью следующей команды:

docker exec -it "Name_Container" echo $Name_Variable

Это значение не будет отображаться.

Терминал выполняет переменную $ Name_Variable, прежде чем "отправлять" ее в докер.

Вы должны ввести в свойКонтейнер с помощью bash и сделать echo $ Name_Variable.

0 голосов
/ 28 марта 2019

Пожалуйста, поделитесь подробностями API (или) полными деталями скрипта Python - здесь он минимально включает ваш файл Docker (Docker build cmd). Ниже приведен синтаксис и вы пытаетесь переопределить переменные окружения, установленные образом Docker.процесс сборки?

Ссылка: https://docker -py.readthedocs.io / en / stable / api.html

exec_create(container, cmd, stdout=True, stderr=True, stdin=False, tty=False, privileged=False, user='', environment=None, workdir=None, detach_keys=None)


environment (dict or list) – A dictionary or a list of strings in the following format ["PASSWORD=xxx"] or {"PASSWORD": "xxx"}.
...