У меня есть контейнер Docker, который выполняет скрипт bash как ENTRYPOINT
.Этот сценарий выполняет множество задач, основанных на настройке переменных среды.
Самое странное происходит, когда я запускаю контейнер, выполняется сценарий точки входа, и из-за отсутствия более подходящих слов он в конечном итоге дает сбой.
Теперь, если я ввожу контейнер вручную $ docker exec -it <id> bash
Затем вручную запускаю тот же сценарий, он работает!
Что здесь происходит?Почему Docker, выполняющий сценарий, отличается от меня, выполняющего сценарий вручную?
ОБНОВЛЕНИЕ для большего контекста
Dockerfile
FROM cuda:torch:cudnn # Not real source, but these are what are in play
# setup lua and python
COPY . /app
WORKDIR /app
ENTRYPOINT ["./entrypoint.py"]
CMD ["start"]
точка входа.py
class DoSomething:
def methods_that_work(self):
...
def run_torch(self):
"""
I do NOT work if called from the Dockerfiles ENTRYPOINT
I DO work if I manually run ./entrypoint.py start from within the container
cmd = ['th', ...]
subprocess.run(cmd)
Факел и Луа должны знать, где находятся CUDA и CudNN.Я могу подтвердить, что все переменные ENV установлены.При запуске через Docker ENTRYPOINT факел просто зависает, никаких ошибок, ничего, просто зависает.
Когда я захожу в контейнер и запускаю вручную ./entrypoint.py, он работает.