django - 将 django docker 容器部署到弹性 beantalk
问题描述
我有一个配置了 nginx + gunicorn 的 django rest 框架应用程序。我可以很好地在本地运行容器docker-compose up -d --build
,但我希望将 docker 映像部署到 AWS 弹性 beanstalk。
出于调试目的,我正在尝试eb local run
,但我似乎收到了这个错误:
latest: Pulling from <user>/<repo>
Digest: sha256:15cec14272aca0b787c4209e3196b2e61d50732f6f4616f2cf50baa28b82c65c
Status: Image is up to date for <user>/<repo>:latest
docker.io/<user>/<repo>:latest
Sending build context to Docker daemon 316.7MB
Step 1/2 : FROM <user>/<repo>:latest
---> eex74e02e4e5
Step 2/2 : EXPOSE 8000
---> Using cache
---> 094f132e13a7
Successfully built 094f132e13a7
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
docker: invalid reference format.
See 'docker run --help'.
ERROR: CommandError - None
这是我的 Dockerrun.aws.json:
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "<user>/<repo>:latest",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "8000"
}
]
}
如果我实际部署到 EB,我会在日志中看到以下错误:
----------------------------------------
/var/log/web.stdout.log
----------------------------------------
Aug 15 22:26:00 ip-172-31-24-230 web: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
Aug 15 22:26:00 ip-172-31-24-230 web: File "<frozen importlib._bootstrap>", line 983, in _find_and_load
Aug 15 22:26:00 ip-172-31-24-230 web: File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
Aug 15 22:26:00 ip-172-31-24-230 web: ModuleNotFoundError: No module named 'application'
Aug 15 22:26:00 ip-172-31-24-230 web: [2020-08-15 22:26:00 +0000] [3815] [INFO] Worker exiting (pid: 3815)
Aug 15 22:26:00 ip-172-31-24-230 web: [2020-08-15 22:26:00 +0000] [3808] [INFO] Shutting down: Master
Aug 15 22:26:00 ip-172-31-24-230 web: [2020-08-15 22:26:00 +0000] [3808] [INFO] Reason: Worker failed to boot.
Aug 15 22:26:00 ip-172-31-24-230 web: [2020-08-15 22:26:00 +0000] [3820] [INFO] Starting gunicorn 20.0.4
Aug 15 22:26:00 ip-172-31-24-230 web: [2020-08-15 22:26:00 +0000] [3820] [INFO] Listening at: http://127.0.0.1:8000 (3820)
为什么我会收到此错误?
解决方案
要在 EB 上使用 docker,您有两种选择:
由于您使用的是Dockerrun.aws.json v1,因此您应该使用Docker running on 64bit Amazon Linux 2/3.1.0
平台(单个 docker),而不是Python 3.7 running on 64bit Amazon Linux 2/3.1.0
.
受支持的单 docker 平台列表在此处。
在控制台中它将是:
推荐阅读
- spring-boot - 找不到“org.springframework.mail.javamail.JavaMailSender”类型的 bean
- r - 我的数据集很大,我不知道如何用数据制作数字
- r - 检查 url 是否存在时识别转发
- scala - 如何将 KafkaAvroSerializer 传递给 Kafka ProducerRecord?
- selenium - 如果两个用户同时登录,将在远程 jenkins 服务器上捕获什么 selenium 屏幕截图?
- c# - 使用 IMessageHandlerContext 发送多条消息
- opendaylight - 192.168.56.3 无法联系遥控器
- angular - How to fix solve Expected a 'for-of' loop instead of a 'for' loop with this simple iteration in angular 8
- android - Android UI 测试:如何点击到 Android 对话框?
- shiny - 我可以在服务器上上传 csv 文件,但它没有显示在主面板或闪亮的仪表板主体面板中