Сценарий оболочки Docker не параметризован должным образом - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть следующий run.sh скрипт:

#!/bin/bash
if [[ "$1" = build ]]
then
    python -m flask run --host=0.0.0.0
else
    echo "$1"
fi

И следующее Dockerfile определение:

FROM python:3
COPY "app.py" /
COPY "requirements.txt" /
COPY "run.sh" /
RUN ["pip", "install", "-r", "requirements.txt"]
RUN ["chmod", "+x", "/run.sh"]
ENV FLASK_APP app.py
EXPOSE 5000
ENTRYPOINT /run.sh
CMD build

./run.sh foo распечатывает foo, но docker build . -t test; docker run test печатает пустую строку.Как получилось?

1 Ответ

0 голосов
/ 13 декабря 2018

Используйте синтаксис json / exec для ваших строк CMD и ENTRYPOINT.В противном случае docker обернет команды оболочкой:

ENTRYPOINT ["/run.sh"]
CMD ["build"]

См. Таблицу в этой документации для получения дополнительной информации о взаимодействии двух синтаксисов.

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