我是 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"]
你能告诉我如何正确设置它吗?谢谢!
更新:
移动到子文件夹后的最新错误: