#docker #dockerfile #containers
#docker #dockerfile #контейнеры
Вопрос:
Как заставить контейнер Docker завершать работу с кодом ошибки после истечения времени ожидания?
У меня есть Dockerfile, который использует ubuntu
изображение и копирует файл сценария из моего каталога в изображение и, наконец, выполняет скрипт в контейнере.
FROM ubuntu
WORKDIR /usr/bin/
COPY ./example.py .
RUN chmod x example.py
ENTRYPOINT ["python3", "example.py"]
Затем я запускаю команду сборки:
docker build -t demo .
запустите контейнер:
docker run -it --rm demo
Я не уверен, сколько времени потребуется для успешного выполнения example.py сценарий, но я хочу выйти из контейнера через 1 час.
Если example.py скрипт успешно выполнен в течение 1 часа, тогда все в порядке, в противном случае я хочу выйти с кодом ошибки.
Ответ №1:
Вы можете использовать timeout
команду следующим образом :
ENTRYPOINT ["timeout", "3600", "python3", "example.py"]
Если python3 example.py
требуется более 1 часа (3’600 секунд), будет возвращена ошибка (код выхода 124).
Комментарии:
1. Конечно, позвольте мне попробовать это. Спасибо за ваш ответ
2. @RedwolfPrograms вы правы, спасибо за уловку 🙂 Я обновлю свой ответ!