amazon-web-services - AWS ECS 中的退出代码 1?
问题描述
我正在尝试将应用程序发布到 AWS Elastic Container Service(ECS)。我正在使用 ECS CLI 编写我的 docker-compose 文件。有 2 个 Docker 组件。一个 Web 容器(Flask 应用程序)和一个服务器容器(NGINX)。当只有 web 容器运行时一切正常,但是当我运行服务器时,我总是得到退出代码 1。
docker-compose.yaml
version: "3"
services:
web:
image: 131099/generateme
expose:
- 5000
logging:
driver: awslogs
options:
awslogs-group: generateme
awslogs-region: eu-west-2
awslogs-stream-prefix: web
server:
image: 131099/generateme-server
ports:
- 80:80
environment:
- DOCKER_PROVIDER = ecs
- DEBUG = true
depends_on:
- web
logging:
driver: awslogs
options:
awslogs-group: generateme
awslogs-region: eu-west-2
awslogs-stream-prefix: server
Dockerfile 131099/generateme-server
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d
nginx.conf
upstream generateme {
server web:5000;
}
server {
listen 80;
location / {
proxy_pass http://generateme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
任何想法为什么退出代码是 1?我检查了日志,它说:
nginx: [emerg] host not found in upstream "web:5000" in /etc/nginx/conf.d/nginx.conf:2
depends_on
由于该属性,Web容器不应该在服务器之前先启动吗?
解决方案
看起来你忘记--enable-service-discovery
了ecs-cli
.
逐步查看文档,但基本上当您启动服务时使用该标志。
ecs-cli compose --project-name generateme service up --private-dns-namespace generateme --vpc vpc-xxxxx --enable-service-discovery
推荐阅读
- python - 为列创建二进制标志
- authentication - FreeRadius3.0 带 ldap 配置
- javascript - Headless BigCommerce 博客 - 如何显示图片等资产
- tomcat - Tomcat 8.5.43 - shutdown.sh 不起作用
- spss - SPSS 计算 Fleiss Multirater Kappa 而不是 Cronbach Alpha
- pyspark - Glue PySpark 作业:调用 o100.pyWriteDynamicFrame 时出错
- selenium - 使用硒的触摸元素
- python-3.x - 并行化相同的函数调用 | Python
- c# - C# / 将数据发送到 Google Charts / MVC-Controller/Model 传递给 View
- python - Replacing numpy array with max value