У меня есть файл войны, развернутый как Docker
контейнер на linux ec2
.Но когда я пытаюсь нажать http://ec2-elastic-ip:8080/AppName
, я не получаю никакого ответа.
У меня есть все security group
входящие правила, настроенные как для http
, так и https
.Так что это не проблема.
Отладка
Я попытался отладить на ssh-ing
экземпляр linux.Пробная команда curl localhost:8080
, это ответ:
curl: (7) Failed to connect to localhost port 8080: Connection refused
Пробовал с 127.0.0.1:8080
, но с тем же ответом.
Следующее, что я сделал, - перечислил контейнер Docker: docker ps
,Я получаю:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<ID> <ecr>.amazonaws.com/<my>-registry:2019-05-16.12-17-02 "catalina.sh run" 24 minutes ago Up 24 minutes 0.0.0.0:32772->8080/tcp ecs-app-24-name
Теперь я подключился к этому контейнеру с помощью docker exec -it <name> /bin/bash
и попытался проверить журналы tomcat, которые ясно показывают, что моя война приложений уже началась, и tomcat начался.
Я когда-либопопытался проверить docker-machine ip default
, но это дало мне ошибку:
Docker machine "default" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.
Теперь я застрял.Не в состоянии отладить дальше.В результате я ожидаю получить доступ к приложению через указанный выше URL.
Что делать?Это что-то не так?
Также, чтобы упомянуть, вся инфраструктура управляется через terraform
.Сначала я создаю базовый образ, копирую войну в веб-приложения, используя DockerFile
, выдвигаю образ реестра и, наконец, делаю terraform apply
, чтобы применить любые изменения.