Я пишу маленького бота на python, и, поскольку это побочный проект, я решил использовать плату на основе ARM, чтобы она работала 24/7.
На ранних этапах я пытался сделатьэто изначально в его системе, но зависимости почти сводили меня с ума.
С этого момента я решил использовать Docker, чтобы упростить задачу.Трубопровод был довольно прост: разработайте на моей машине (X86_64) и загрузите на сервер (ARM).
После нескольких попыток контейнер без проблем работал на моей машине со следующим Dockerfile
:
FROM python:latest
RUN apt-get update && apt-get upgrade -y
COPY <path to bot file>
RUN pip install -r requirements.txt
ENTRYPOINT python <path to main.py>
CMD bash
Несмотря на это, всякий раз, когда я пытался построить образ на сервере, я получал сообщение об ошибке, связанное с библиотекой numpy
.
Для решения этой проблемы в Dockerfile
была добавлена следующая строка:
RUN pip install numpy
Это сработало, но процесс сборки занял много времени.
Я сомневаюсь, что такого поведения можно ожидать при использовании разных архитектур, и как этого можно избежать при сборке приложения
requirements.txt
следующим образом:
python_telegram_bot==11.1.0
pandas_datareader==0.7.0
fix_yahoo_finance==0.0.22