Dokku: не видит контейнерный порт

Призыв к небольшой помощи Dokku здесь, если кто-то что-то знает об этом. Я создал новый сервер Dokku и пытаюсь развернуть уже существующее приложение. Я знаю, что приложение хорошее, потому что оно без проблем работает на другом хосте dokku.

Когда я развертываю приложение на этом сервере, оно возвращает один адрес... который недействителен. Это имя хоста коробки, и это нормально. Я не ожидаю, что это сработает. Но дело в том, что когда я развертываю на другом (рабочем) хосте dokku, он возвращает два URL-адреса. Один для nginx и один для container, когда я перехожу к порту контейнера (который является случайным при каждом развертывании, вероятно, из-за конфликтующих портов, когда контейнеры сосуществуют), я вижу приложение.

Это говорит мне о том, что прокси-сервер nginx отключен, а контейнер привязан к внешнему интерфейсу на хосте dokku, верно?

Итак, на новом сервере, если я запускаю dokku proxy:disable app, а затем запускаю docker ps, я не вижу ничего, привязанного к портам.

[root@dokku-host ~]# dokku proxy:disable fr-intacct-staging
-----> Disabling proxy for app (fr-intacct-staging)
-----> Setting config vars
       DOKKU_DISABLE_PROXY:  1
-----> Unsetting DOKKU_PROXY_PORT
-----> Skipping DOKKU_PROXY_SSL_PORT, it is not set in the environment
-----> Unsetting DOKKU_PROXY_PORT_MAP
-----> VHOST support disabled, deleting fr-intacct-staging/VHOST
-----> VHOST support disabled, deleting fr-intacct-staging/URLS
-----> Setting config vars
       NO_VHOST:  1
-----> Releasing fr-intacct-staging (dokku/fr-intacct-staging:latest)...
-----> Deploying fr-intacct-staging (dokku/fr-intacct-staging:latest)...
-----> App Procfile file found (/home/dokku/fr-intacct-staging/DOKKU_PROCFILE)
-----> DOKKU_SCALE file found (/home/dokku/fr-intacct-staging/DOKKU_SCALE)
=====> web=1
-----> Attempting pre-flight checks
       For more efficient zero downtime deployments, create a file CHECKS.
       See http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/ for examples
       CHECKS file not found in container: Running simple container check...
-----> Waiting for 10 seconds ...
-----> Default container check successful!
-----> Running post-deploy
-----> VHOST support disabled. Skipping domains setup
-----> nginx support is disabled for app (fr-intacct-staging).
-----> deleting nginx.conf
-----> reloading nginx after nginx.conf deletion
-----> Setting config vars
       DOKKU_APP_RESTORE:  1
-----> Found previous container(s) (9f0d2416e9ed) named fr-intacct-staging.web.1
=====> Renaming container (9f0d2416e9ed) fr-intacct-staging.web.1 to fr-intacct-staging.web.1.1550048431
=====> Renaming container (d9f6006f0eaf) naughty_cartwright to fr-intacct-staging.web.1
-----> Shutting down old containers in 60 seconds
=====> 9f0d2416e9ed1f44716e16b3f39236cde9d0d5594bb60c0823dee0053d49e6f8
=====> Application deployed:
       http://dokku-host.c.fr-intacct-staging.internal:5000 (container)

Поэтому, если я проверю из браузера общедоступный IP-адрес этого ящика, на порту 5000 я не увижу приложение (fw открыто полностью), но если я проверю порт 80, я увижу страницу удержания nginx. Итак, nginx работает на порту 80, я ожидаю увидеть приложение, работающее на порту 5000?

Я вижу это: [root@dokku-host ~]# docker ps

CONTAINER ID        IMAGE                             COMMAND             CREATED             STATUS              PORTS               NAMES
d9f6006f0eaf        dokku/fr-intacct-staging:latest   "/start web"        4 minutes ago       Up 4 minutes                            fr-intacct-staging.web.1

Кажется, что ничего не привязано к внешнему интерфейсу. Конечно, я ожидал увидеть там что-то вроде 0.0.0.0/0:5000, нет?

Я новичок в Dokku, но имею некоторый опыт работы с Docker.

РЕДАКТИРОВАТЬ: Просто дополнительная информация...

Со старого хоста:

root@dokku:/home/dokku/fr-intacct# docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS                     NAMES
5fbd53343888        dokku/fr-intacct:latest   "/start web"        5 months ago        Up 5 months         0.0.0.0:32792->5000/tcp   fr-intacct.web.1

 root@dokku:/home/dokku/fr-intacct# dokku config fr-intacct
=====> fr-intacct config vars
DOKKU_APP_RESTORE: 1
DOKKU_NGINX_PORT:  80
NO_VHOST:          1 

 root@dokku:/home/dokku/fr-intacct# dokku urls fr-intacct
http://dokku.internal.fr.com:32792 (container)
http://dokku.internal.fr.com:80 (nginx) 

От нового хозяина:

[root@dokku-host fr-intacct-staging]# docker ps 
CONTAINER ID        IMAGE                             COMMAND             CREATED             STATUS              PORTS               NAMES
d9f6006f0eaf        dokku/fr-intacct-staging:latest   "/start web"        14 minutes ago      Up 14 minutes                           fr-intacct-staging.web.1
[root@dokku-host fr-intacct-staging]# dokku config fr-intacct-staging
=====> fr-intacct-staging env vars
DOKKU_APP_RESTORE:    1
DOKKU_APP_TYPE:       herokuish
DOKKU_DISABLE_PROXY:  1
GIT_REV:              337bd92c233fc6b7e17246bf568fc30370d3e656
NO_VHOST:             1
[root@dokku-host fr-intacct-staging]# dokku urls fr-intacct-staging
http://dokku-host.c.fr-intacct-staging.internal:5000 (container)

Я пытался сделать настройки конфигурации одинаковыми с dokku config set fr-intacct-staging xxxx=xxx, но безрезультатно.

Я чувствую, что мне нужно остановить его от попыток использовать nginx в качестве прокси, привязать контейнер к внешним интерфейсам и подключиться напрямую к контейнеру.

Однако:

[root@dokku-host fr-intacct-staging]# dokku proxy:disable fr-intacct-staging
-----> proxy is already disable for app (fr-intacct-staging)
[root@dokku-host fr-intacct-staging]# docker ps
CONTAINER ID        IMAGE                             COMMAND             CREATED             STATUS              PORTS               NAMES
d9f6006f0eaf        dokku/fr-intacct-staging:latest   "/start web"        35 minutes ago      Up 35 minutes                           fr-intacct-staging.web.1
[root@dokku-host fr-intacct-staging]#

Действительно был бы признателен за мысли по этому поводу... Спасибо.


person jonnybinthemix    schedule 13.02.2019    source источник


Ответы (1)


Это было легко решить с помощью службы поддержки Dokku в Slack. Я ссылался на более старый документ.

Резолюция к этому была:

dokku proxy:disable fr-intacct-staging
dokku network:set fr-intacct-staging bind-all-interfaces true
dokku ps:rebuild fr-intacct-staging

Здесь отличные документы: http://dokku.viewdocs.io Но... обязательно выберите версию в внизу справа. Различия между версиями огромны.

person jonnybinthemix    schedule 14.02.2019