Мне нужно запустить Shell Script, используя django в контейнере Docker - PullRequest
0 голосов
/ 24 апреля 2020
my shell file 
    #!/bin/bash

    echo "Success"

    exit 1

Я вызвал вышеуказанный файл, используя следующую команду. python file

     subprocess.call(["bash", "scripts/test.sh"], shell=True)

Работает нормально при работе без контейнера Docker. Но он показывает ошибку при запуске внутри контейнера.

ошибка:

python_1         | scripts/test.sh: line 1: bash: not found

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы используете базовый образ, на котором не установлено bash. Например, в Alpine по умолчанию не установлено bash.

Я бы не рекомендовал использовать Alpine (https://pythonspeed.com/articles/alpine-docker-python/), но если вы используете его, вы можете установить bash выполнив:

RUN apk add --update-cache bash
0 голосов
/ 24 апреля 2020

Утро!

Вы уверены, что делитесь этим файлом в контейнере?

Используемая вами команда должна указать, какую папку вы разделяете между контейнером и основной системой.

Это может помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...