Контейнеры на GCE. Как обращаться с большими контейнерами?

# #docker #google-cloud-platform #google-compute-engine #google-container-registry

Вопрос:

После установки модели высокой точности SpaCy в мой конвейер python размер контейнера docker увеличился с 60 МБ до 3,5 ГБ. Следовательно, время загрузки оптимизированного для контейнера вычислительного экземпляра также значительно увеличилось. Есть ли какой-нибудь способ, которым я мог бы перенести часть SpaCy в GCR, а затем иметь дело только с контейнером объемом 60 МБ?

Докерфайл:

 FROM python:3.9-slim

WORKDIR /usr/app

COPY requirements.txt server.py en_core_web_trf-3.1.0.tar.gz .

RUN pip3 install -r requirements.txt

CMD ["python3", "server.py"]
 

requirements.txt:

 google-cloud-pubsub==2.8.0
./en_core_web_trf-3.1.0.tar.gz
 

Ответ №1:

Когда вы запускаете свой GCE, запускается машина, а затем загружается ваш огромный контейнер. (Скачайте и извлеките его). Для этого может потребоваться несколько секунд, может быть, несколько минут.

Одним из решений является создание пользовательского изображения с уже загруженным изображением COS вашим контейнером. Затем разверните этот пользовательский образ на своей виртуальной машине. Теперь, когда он запускается, контейнер уже здесь, и вам просто нужно его запустить.

Однако вам необходимо перестраивать пользовательский образ каждый раз, когда вы создаете новый контейнер. И вы нарушаете главное преимущество контейнера (быть независимым от образа машины)