【发布时间】:2021-07-15 02:36:03
【问题描述】:
我是 Docker、AWS Lambda 和 Zappa 的新手,但我正在尝试配置一个项目,但收效甚微。
我连接到 Docker (docker-compose run web bash),激活环境,配置 AWS 凭证并运行 zappa init 和 zappa deploy。但是,部署后出现错误(执行zappa tail):
ModuleNotFoundError: No module named 'project'
我相信那是因为我的目录结构不是标准的:
Dockerfile
zappa_settings.json
requirements.txt
project\
- manage.py
- root\
- settings.py
- wsgi.py
- ...
所以,我的 django 项目位于 project 文件夹中,因为我不喜欢将所有文件都扔在那里并与其他配置文件混合。
我的 zappa 配置文件如下所示:
{
"dev": {
"aws_region": "us-east-2",
"django_settings": "project.root.settings",
"profile_name": "default",
"project_name": "task",
"runtime": "python3.6",
"s3_bucket": "bucket-name"
}
}
还有 Dockerfile:
FROM lambci/lambda:build-python3.6
# Copy in your requirements file
ADD requirements.txt /requirements.txt
# Copy your application code to the container
RUN mkdir /code/
WORKDIR /code/
ADD . /code/
ENV PS1 'zappa@$(pwd | sed "s@^/var/task/\?@@")\$ '
ADD zappa_settings.json /var/task/zappa_settings.json
WORKDIR /var/task
RUN virtualenv /var/venv && \
source /var/venv/bin/activate && \
pip install -U pip zappa && \
pip install -r /requirements.txt && \
deactivate
CMD ["zappa"]
您能告诉我如何正确设置它吗?谢谢!
更新:
移动到子文件夹后的最新错误:
【问题讨论】:
-
如何将
Dockerfile、zappa_settings.json、requirements.txt文件移动到与manage.py文件相同的位置并将zappa 配置更改为"django_settings": "root.settings"? -
谢谢@Beomi。说得通。但是,我做到了,现在我得到了
ModuleNotFoundError: No module named 'root'。我正在添加完整错误的截图。谢谢
标签: django aws-lambda zappa