Я пытаюсь развернуть приложение Django в Amazon Lambda через Zappa. Приложение использует pyzbar, для которого есть требование zbar или libzabar0. В моем Dockerfile я устанавливаю библиотеку zbar, и в локальном файле docker мой код работает правильно. Однако, когда я делаю zappa update dev
, он выдает ошибку, что не может найти зависимость zbar. ImportError: Unable to find zbar shared library
Я осмотрелся и следую этому руководству: https://blog.zappa.io/posts/docker-zappa-and-python3. Я добавил зависимость в Dockerfile (см. ниже) и сказал, что она работает правильно. Я также пытался развернуть zappa в указанном выше каталоге (/var/
), но затем zappa жалуется, что zip-файл слишком велик.
Докерфайл
FROM lambci/lambda:build-python3.6
LABEL maintainer='me'
WORKDIR /var/task
# Fancy prompt to remind you are in zappashell
RUN echo 'export PS1="\[\e[36m\]zappashell>\[\e[m\] "' >> /root/.bashrc
# Add your extra requirements here e.g. postgres-devel
# RUN yum install -y yourpackages
RUN yum clean all && \
yum -y install zbar zbar-devel
CMD ["zappa"]
Настройки Заппы
{
"dev": {
"django_settings": "library.settings",
"profile_name": null,
"project_name": "backend",
"runtime": "python3.6",
"s3_bucket": "bucket"
}
}
Команда запуска докера: docker run -ti --env .env -v "%cd%":/var/task -v ~/.aws/:/root/.aws -p "8000:8000" library bash
Моя цель — загрузить его в Amazon Lambda и обеспечить правильную работу библиотеки zbar. Однако я получаю сообщение об ошибке ImportError: ImportError: Unable to find zbar shared library
.
Любая идея, как я могу это исправить?
docker run
более похожей на то, что вы на самом деле будете запускать в Lambda, что, вероятно, означаетCOPY
включение вашего локального дерева в образ Docker. - person David Maze   schedule 30.03.2019