Amazon web services AWS弹性豆茎与docker应用程序返回502

Amazon web services AWS弹性豆茎与docker应用程序返回502,amazon-web-services,spring-boot,docker,amazon-elastic-beanstalk,Amazon Web Services,Spring Boot,Docker,Amazon Elastic Beanstalk,我用docker创建了一个SPRING-BOOT应用程序,我正在将此映像部署到Elastic beanstalk,一切顺利,通过日志,应用程序启动,但随后访问,我得到了一个503,我尝试了几种方法,有人能给出一个想法吗 我的Dockerrun文件: { "AWSEBDockerrunVersion": "2", "containerDefinitions": [ { "e

我用docker创建了一个SPRING-BOOT应用程序,我正在将此映像部署到Elastic beanstalk,一切顺利,通过日志,应用程序启动,但随后访问,我得到了一个503,我尝试了几种方法,有人能给出一个想法吗

我的Dockerrun文件:

{
    "AWSEBDockerrunVersion": "2",
    "containerDefinitions": [
        {
            "essential": true,
            "image": "187190575110.dkr.ecr.us-east-1.amazonaws.com/kroton-app:${TAG}",
            "memory": 512,
            "memoryReservation": 256,
            "mountPoints": [],
            "name": "kroton-app",
            "portMappings": [
                {
                    "containerPort": "8080",
                    "hostPort": "80"
                }
            ]
        }
    ]
}
我的Docker文件:

FROM node:12-alpine

#TEST

# JAVA DEPS
RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk --no-cache add maven

# NPM DEPS
RUN mkdir -p /eventos/src/main/resources/node
WORKDIR /eventos
COPY ./src/main/resources/node/package.json src/main/resources/node

RUN cd src/main/resources/node && \
    npm install

# NODE APP
COPY ./src/main/resources/node src/main/resources/node

# NODE BUILD
RUN cd src/main/resources/node && \
    npm run build:prod

# MAVEN DEPS
COPY ./pom.xml /eventos
RUN mvn dependency:go-offline

# MAVEN BUILD
COPY . /eventos
run mvn clean package -Dspring.profiles.active=prod,storage-s3
RUN mvn install -DskipTests

# CLEANUP
RUN rm -rf src/main/resources/node

EXPOSE 8080
CMD ["java","-jar","-Dspring.profiles.active=prod,storage-s3","/eventos/target/eventos-1.0.0-RELEASE.jar"]
容器上应用程序的我的aws日志(var/log/containers/app.log)

SSH响应:

$ sudo docker ps
CONTAINER ID        IMAGE                                                            COMMAND                  CREATED             STATUS                   PORTS                    NAMES
60208e7c7429        187190575110.dkr.ecr.us-east-1.amazonaws.com/kroton-app:master   "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes             0.0.0.0:8080->8080/tcp   ecs-awseb-kroton-prod-ywvf9pvxrr-19-kroton-app-bc9591de9be2fd9f3000
3cee31b0f74d        amazon/amazon-ecs-agent:latest                                   "/agent"                 6 minutes ago       Up 6 minutes (healthy)                            ecs-agent



$ curl http://localhost:8080
<!doctype html> <html lang="pt"> <head> <title>Eventos Kroton - Home</title> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> <link rel="stylesheet" href="/css/eventos-977e18c37ae6ce996d5f9871a231481b.css"> </head> <body> <input name="_csrf" value="a03be7d3-b991-4f48-a596-b0c4b6f82dce" id="csrf-token" type="hidden"/> <div> <script src="/js/eventos-82e6dbb5b75296a131489f409be47723.js"></script> </div> <header> <div class="border-bottom"> <div class="mobile-header container my-2 d-md-none"> <span class="mobile-menu-btn fa fa-3x fa-bars"></span> </div> <div class="mini-header container py-2 d-md-block d-none"> <div class="row"> <div class="col"> <a class="text-uppercase" href="https://pgsskroton.com.br/" target="_blank">Portal Strictu Sensu</a> </div> <div class="col text-right"> </div> </div> </div> </div> <div class="main-header container-fluid d-flex py-2 px-xl-5"> <div class="row m-0 w-100"> <div class="search-box form-inline col-4 d-md-flex d-none"> <div class="form-group w-100"> <label class="mr-2" for="search"><span class="fa fa-2x fa-search"></span></label> <select class="flex-grow-1 form-control form-control-sm border-0" id="search" placeholder="Pesquisar" type="text"> </select> </div> </div> <div class="logo-container align-self-center col-12 col-md-4"> <a class="text-decoration-none" href="/" title="Eventos Kroton"> <img alt="Eventos Kroton" class="mx-auto d-block" src="/img/logo.svg"> </a> </div> <ul class="header-menu list-inline text-right align-self-center col-4 d-md-block d-none m-0" id="desktop-menu">   <li class="list-inline-item"><a href="/login">Login</a></li> <li class="list-inline-item"><a href="/registrar">Criar Nova Conta</a></li>  </ul> </div> </div> </header> <div> <section id="events-banner" class="py-5"> <div class="events-featured container"> <div id="events-carousel" class="carousel slide carousel-fade" data-ride="carousel"> <ol class="carousel-indicators">  </ol> <div class="carousel-inner">  </div> </div> </div> </section>   </div> <div> <div class="footer navbar-fixed-bottom text-center" style="background-color: #046eb1; color: white;padding : 5px; margin: 5px;"> <address> Kroton Educacional 2020. Todos os Direitos Reservados - Sistema de Eventos<br> Contato: <a style="color: white;hover: red;" href="mailto:editora@kroton.com.br">editora@kroton.com.br</a> </address> </div> </div> <script>EventosJs.init();function searchSelectize(a){a("#search").selectize({valueField:"id",labelField:"titulo",searchField:"titulo",preload:true,options:[],create:false,render:{option:function(c,b){return'<div><div class="row px-1 mb-2 cursor-pointer"><div class="col-4"><img class="img-fluid" src="/img/eventos/'+c.id+"/thumb/"+c.imgMiniaturaName+'.jpg" ></div><div class="col-8">'+b(c.titulo)+"</div></div></div>"}},load:function(b,c){a.ajax({url:"/api/evento/find",type:"GET",dataType:"json",data:{titulo:b},error:function(){c()},success:function(d){c(d.content)}})},onChange:function(b){this.clearOptions();window.location="/eventos/"+b}})}EventosJs.addEvent(searchSelectize);</script> </body> </html>
$sudo docker ps
容器ID映像命令已创建状态端口名称
60208e7c7429 187190575110.dkr.ecr.us-east-1.amazonaws.com/kroton app:master“docker entrypoint.s…”5分钟前上升5分钟0.0.0.0.0:8080->8080/tcp ecs-awseb-kroton-prod-ywvf9pvxr-19-kroton-app-bc9591de9be2fd9f3000
3cee31b0f74d亚马逊/亚马逊ecs代理:最新“/agent”6分钟前启动6分钟(正常)ecs代理
$curlhttp://localhost:8080
Eventos Kroton-Home
    • EventosJs.init();函数searchSelectize(a){a(“#search”).selectize({valueField:“id”,labelField:“titulo”,searchField:“titulo”,preload:true,options:[],create:false,render:{option:function(c,b){return b(c.titulo)+},load:function(b,c){a.ajax({url:/api/evento/find),type:“GET”,dataType:“json”,data:{titulo:b},error:function(){c(),success:function(d){c.ajax)})},onChange:function(b){this.clearpoptions();window.location=“/eventos/”+b}}}EventosJs.addEvent(searchSelectize);
您的新输出显示您正在使用端口8080:

0.0.0.0:8080->8080/tcp
您的
dockrun
与以下端口不匹配:

            "portMappings": [
                {
                    "containerPort": "8000",
                    "hostPort": "80"
                }
因此,在运行时,您在
dockrun
和实际的docker中使用了不同的端口


可能不需要在
Dokerfile
中使用
EXPOSE 8080

Dockerfile
上公开端口8080,在
dockrun.aws.json
上公开映射8000。我相信这才是真正的问题。对于解决方案,您可以在映像上公开端口8000,并在部署后尝试访问

您能否尝试使用此
Dockerfile
构建映像

FROM node:12-alpine

#TEST

# JAVA DEPS
RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk --no-cache add maven

# NPM DEPS
RUN mkdir -p /eventos/src/main/resources/node
WORKDIR /eventos
COPY ./src/main/resources/node/package.json src/main/resources/node

RUN cd src/main/resources/node && \
    npm install

# NODE APP
COPY ./src/main/resources/node src/main/resources/node

# NODE BUILD
RUN cd src/main/resources/node && \
    npm run build:prod

# MAVEN DEPS
COPY ./pom.xml /eventos
RUN mvn dependency:go-offline

# MAVEN BUILD
COPY . /eventos
run mvn clean package -Dspring.profiles.active=prod,storage-s3
RUN mvn install -DskipTests

# CLEANUP
RUN rm -rf src/main/resources/node

EXPOSE 8000
CMD ["java","-jar","-Dspring.profiles.active=prod,storage-s3","/eventos/target/eventos-1.0.0-RELEASE.jar"]

如果使用ssh连接到实例中,container是否运行?您可以运行
sudo docker ps
。检查暴露的端口,并直接卷曲容器以查看应用程序是否在本地主机上工作。好的,我将其插入实例并在端口上运行docker ps和卷曲,将上面的结果添加为SSH响应rry,我在Dockerrun.aws.json中编辑了此端口,但不工作。抱歉,我在Dockerrun.aws.json中编辑了此端口,你没有公开负载均衡器上关联的安全组上的端口吗?我没有做任何关于负载均衡器的事情,你有一个我可以验证这一点的例子吗?有什么想法@CauêAlves Braz
FROM node:12-alpine

#TEST

# JAVA DEPS
RUN apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community
RUN apk --no-cache add maven

# NPM DEPS
RUN mkdir -p /eventos/src/main/resources/node
WORKDIR /eventos
COPY ./src/main/resources/node/package.json src/main/resources/node

RUN cd src/main/resources/node && \
    npm install

# NODE APP
COPY ./src/main/resources/node src/main/resources/node

# NODE BUILD
RUN cd src/main/resources/node && \
    npm run build:prod

# MAVEN DEPS
COPY ./pom.xml /eventos
RUN mvn dependency:go-offline

# MAVEN BUILD
COPY . /eventos
run mvn clean package -Dspring.profiles.active=prod,storage-s3
RUN mvn install -DskipTests

# CLEANUP
RUN rm -rf src/main/resources/node

EXPOSE 8000
CMD ["java","-jar","-Dspring.profiles.active=prod,storage-s3","/eventos/target/eventos-1.0.0-RELEASE.jar"]