Призыв к небольшой помощи 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]#
Действительно был бы признателен за мысли по этому поводу... Спасибо.