Java AWS Docker部署未使用Dockerrun文件对外公开端口

Java AWS Docker部署未使用Dockerrun文件对外公开端口,java,amazon-web-services,spring-boot,docker,amazon-elastic-beanstalk,Java,Amazon Web Services,Spring Boot,Docker,Amazon Elastic Beanstalk,我正在使用docker映像将spring boot应用程序部署到AWS,我需要能够使用hawtio控制台远程连接到该应用程序以监视行为。我创建了一个Dockerfile和一个Dockerrun.aws.json文件,例如,Dockerfile有EXPOSE 8080,Dockerrun是: { "AWSEBDockerrunVersion": "1", "Ports": [ { "ContainerPort": 8080, "HostPort": 5000 } ] }

我正在使用docker映像将spring boot应用程序部署到AWS,我需要能够使用hawtio控制台远程连接到该应用程序以监视行为。我创建了一个Dockerfile和一个Dockerrun.aws.json文件,例如,Dockerfile有EXPOSE 8080,Dockerrun是:

{
"AWSEBDockerrunVersion": "1",
"Ports": [
  {
    "ContainerPort": 8080,
    "HostPort": 5000
  }
]
}

AWS EB实例打开了端口5000(我测试了它),但Hawtio控制台没有连接到应用程序。有人能告诉我如何正确地暴露端口吗?

如果您使用的是EB,那么如何指定要使用的docker映像

需要在
dockrun.aws.json
文件中指定此信息,您提供的示例中缺少该文件

{
    "AWSEBDockerrunVersion": "1",
    "Image": {
        "Name": "path to the image's repository",
        "Update": "true"
    },
    "Ports": [
        {
            "ContainerPort": 8080,
            "HostPort": 5000
        }
    ]
}

是的,很抱歉错过了邮件上的那句话。不管怎样,我设法解决了这个问题,AWS EB在端口5000上启动应用程序,所以我只需在dockrun.AWS.json上将containerPort设置为5000,并在Dockerfile中公开5000