jeudi 29 janvier 2015

Port forwarding in when running a Tomcat Docker in an AWS Elastic Beanstalk application

I have a Tomcat 7.0 webapp running inside a docker container on AWS Elastic Beanstalk (EB) (I followed the tutorial here).


When I browse to my EB url myapplication.elasticbeanstalk.com, I get a 502 Bad Gateway by served by nginx. So its immediately clear that my port 80 is not forwarding to my container. When I browse to myapplication.elasticbeanstalk.com:8888 (another port I exposed in my Dockerfile) the connection is refused (ERR_CONNECTION_REFUSED). So I SSH'ed into the AWS instance and checked the docker logs, which show that my Tomcat server has started successfully, yet obviously hasn't processed any requests.


Does anyone have any idea my port 8888 appears not to be forwarding to my container?


Executing the command (on the AWS instance):



sudo docker ps -a


gives:



CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c353e236da7a aws_beanstalk/current-app:latest "catalina.sh run" 28 minutes ago Up 13 minutes 80/tcp, 8080/tcp, 8888/tcp sharp_leakey


which shows port 80, 8080, and 8888 as being open on the docker container.


My Dockerfile is fairly simple:



FROM tomcat:7.0

EXPOSE 8080
EXPOSE 8888
EXPOSE 80


and my Dockerrun.aws.json file is:



{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "myusername/mycontainer-repo"
},
"Authentication": {
"Bucket": "mybucket",
"Key": "docker/.dockercfg"
},
"Ports": [
{
"ContainerPort": "8888"
}
]
}


Does anyone see where I could be going wrong? I'm not even sure where to look at this point.


Also, my AWS security group for the instance is open on port 80, 8080, and 8888. Any advice would be greatly appreciated! I'm at a loss here.





Aucun commentaire:

Enregistrer un commentaire