简体   繁体   English

AWS ECS 中的退出代码 1?

[英]Exit code 1 in AWS ECS?

I am trying to publish an application to AWS Elastic Container Service(ECS).我正在尝试将应用程序发布到 AWS 弹性容器服务 (ECS)。 I am using the ECS CLI to compose my docker-compose file.我正在使用 ECS CLI 来编写我的 docker-compose 文件。 There are 2 Docker components.有 2 个 Docker 组件。 A web container(Flask application) and a server container(NGINX).一个 Web 容器(Flask 应用程序)和一个服务器容器(NGINX)。 When just the web container runs all is ok but when I run the server I always get Exit code 1.当只有 Web 容器运行时一切正常,但是当我运行服务器时,我总是得到退出代码 1。

docker-compose.yaml 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 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;
    }

}

Any ideas why the exit code is 1?任何想法为什么退出代码是 1? I have checked the logs and it says:我检查了日志,它说:

nginx: [emerg] host not found in upstream "web:5000" in /etc/nginx/conf.d/nginx.conf:2

Shouldn't the web container be up first before the server because of the depends_on property?由于depends_on属性,Web 容器不应该在服务器之前先depends_on吗?

Looks like you forgot the --enable-service-discovery flag for ecs-cli .看起来您忘记了ecs-cli--enable-service-discovery标志。

Check out the documentation for step by step, but basically when you bring a service up use that flag.逐步查看文档,但基本上当您启动服务时使用该标志。

ecs-cli compose --project-name generateme service up --private-dns-namespace generateme --vpc vpc-xxxxx --enable-service-discovery

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM