Тема: Docker синхронізація часу

Я з докером тільки починаю працювати, тому якщо я не додав важливої інформації про докер напишіть що саме.
Докер встановлений на Windows 10, версія Docker Desktop 4.13.0 (89412)
Використовує WSL 2 рушій

Мені потрібно запустити на докері пітон-застосунок, який через API постійно працює з ін. сервером (зовнішнім / не моїм) в реальному часі. Ось цей зовнішній сервер вимагає, щоб до нього зверталися з точним часом, інакше видає помилку про не успішно оброблений запит.

На Windows в мене включена синхронізація часу. А в докер контейнері я не можу включити синхронізації часу, тому що systemctl не можна викликати

Прихований текст

Тобто мені потрібний systemctl, щоб запустити демон для синхронізації часу. Наприклад chrony

Як я прочитав, контейнер не запускає init system, а тому в контейнері не можна викликати systemctl

Знайшов інформацію про те, що можна ввімкнути синхронізацію часу додавши в файл <file name>.yml

volumes:
- "/etc/localtime:/etc/localtime:ro"

Після цього в мене виникають дивні багі десь раз на три дні. Помилка в тому що останній тік, запізнюється на деякий час.

Last tick is <number> minutes old

Помилка тіка - це повідомлення з пітон-застосунок (а саме від CCXT library). Тобто не від контейнера.

Навіть якщо в такому випадку натиснути синхронізацію часу в ручну у Windows, помилка не зникає.

Єдине що може виправити цю помилку, це перезавантаження docker.

В мене виникла підозра ще це стається після розриву з'єднання з інтернетом (я в Україні, тому це часто відбувається). Але коли я спробував фізично від'єднати кабель інтернету на 5хв і потім підключити. Після підключення кабелю помилка не з'явилася. Тобто поки пітон-застосунок працював без інтернету зрозуміло що він показував помилку обробки запиту, але після підключення кабелю запити успішно виконався, і робота продовжилася без будь-яких помилок

Питання: В мене інколи (не розумію чому, не можу знайти причини) пітон-застосунок на Docker починає видавати помилки тіків, тобто синхронізації часу. Із за чого це може бути, як це можна виправити ?

2

Re: Docker синхронізація часу

Так і не знайшов рішення. Тому зробив скрипт який перезапускає докера кожних 30хв і виконує "ручний" запит синхронізації часу для віндовс.

3 Востаннє редагувалося bebyk (04.11.2022 22:02:36)

Re: Docker синхронізація часу

Ідея: звернути увагу на синхронізацію часу суто WSL. Люди пишуть, що це саме воно може тупити (а ви ж тим volume'ом берете час саме з WSL-середовища).

Якщо винен WSL, спробуйте встановити там ntp-клієнт та кронджобою синхронізовувати час з ntp-сервером. А-ля:

ntpd -d -q -n -p pool.ntp.org
Подякували: Betterthanyou, leofun012