Je suis nouveau sur Docker, AWS Lambda et Zappa, mais j'essaye de configurer un projet avec très peu de succès.Déploiement avec zappa, projet Django dans le sous-dossier
Je me connecte à Docker (docker-compose run web bash
), active l'environnement, configure les informations d'identification AWS et exécute zappa init
et zappa deploy
. Cependant, après le déploiement, je reçois une erreur (exécution zappa tail
):
ModuleNotFoundError: No module named 'project'
Je crois que c'est parce que ma structure dir n'est pas la norme:
Dockerfile
zappa_settings.json
requirements.txt
project\
- manage.py
- root\
- settings.py
- wsgi.py
- ...
Alors, mon projet django se trouve dans le dossier project
, car je n'aime pas avoir tous les fichiers jetés là et mélangés avec d'autres fichiers de configuration.
Mon fichier de configuration zappa ressemble à ceci:
{
"dev": {
"aws_region": "us-east-2",
"django_settings": "project.root.settings",
"profile_name": "default",
"project_name": "task",
"runtime": "python3.6",
"s3_bucket": "bucket-name"
}
}
Et 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 '[email protected]$(pwd | sed "[email protected]^/var/task/\[email protected]@")\$ '
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"]
Pouvez-vous me dire comment configurer correctement? Merci!
MISE À JOUR:
dernière erreur après avoir déménagé à sous-dossier:
Que diriez-vous vous déplacer en Dockerfile', 'zappa_settings.json',' fichiers requirements.txt' à même emplacement avec fichier 'manage.py' et changer zappa config' "django_settings ":" root.settings "'? – Beomi
Merci @Beomi. Logique. Cependant, je l'ai fait et maintenant je reçois 'ModuleNotFoundError: Aucun module nommé 'root''. J'ajoute un screeshot de l'erreur complète. Merci –