Мой Dockerfile выглядит следующим образом:
FROM python:2.7
COPY . /temp
WORKDIR /temp
CMD ["python", "app.py", "100"]
Мой файл Python выглядит следующим образом:
import sys
print "This is the name of the script: ", sys.argv[0]
print "Number of arguments: ", len(sys.argv)
print "The arguments are: " , str(sys.argv)
file = open("log.log", "a")
x = int(sys.argv[1])
print "received value of x is: ", x
if x < 100:
file.write('entered value is less than 100: Exiting with exit code 0; SUCEESS')
elif x == 100:
file.write('entered value is equal to 100: Exiting with exit code 1; SUCEESS')
else:
file.write('entered value is more than 100: Exiting with exit code 2; FAILED')
Способ создания этого контейнера следующий: docker build python-container .
Я запускаю контейнер следующим образом: docker run -v ~/logs/:app python-container
Мне нужно смонтировать каталог контейнера, в котором выполняется вход на мой хост, чтобы был доступен файл журнала, созданный python.на моем хост-компьютере.
Но, к сожалению, этого не происходит,
Отладка сделана мной:
Я изначально использовал python в ENTRYPOINT, нокажется, что команды в ENTRYPOINT сжимаются и связываются в контейнере, а затем контейнер монтируется и, таким образом, происходит сбой.
Я продолжал работать контейнер вечно, используя ENTRYPOINT ["tail", "-f", "/dev/null"]
, но все ещеэто не удалось.
Я также использовал тома docket, создавал тома, монтировал их, а затем запускал контейнеры, но журнал по-прежнему недоступен снаружи.
Мой вопрос здесь, что яотсутствует?
В конечном счете, моя цель состоит в том, чтобы разные контейнеры выполняли разные задания python и генерировали разные файлы журналов в определенном каталоге на моем хосте ...
Я был бы очень признателен за любую помощь в этомдело ...