Сюрпризы от Erlang и Docker-compose

Преамбула

Есть такая интересная штука, как RabbitMQ. Написана на Erlang (это важно). В Docker запускается с пол-пинка, в кластер собирается тремя с половиной командами. Это если всё делать вручную по инструкции. Сразу скажу, корректные FQDN серверов и контейнеров — обязательное условие работоспособности.

Запускаем на первом сервере первую ноду будущего кластера:

docker run -dit -h docker-rabbitmq-01.domain.tld               \
           --name rabbit                                       \
           -p "4369:4369"                                      \
           -p "5671:5671"                                      \
           -p "15671:15671"                                    \
           -p "25672:25672"                                    \
           -p "35197:35197"                                    \
           -e "RABBITMQ_ERLANG_COOKIE=S0meL3ttersAndNumber5"   \
           -v rabbitmq_data:/var/lib/rabbitmq                  \
           -v /opt/ssl:/opt/ssl:ro                             \
           --restart unless-stopped                            \
           zimniy/rabbitmq:latest

Сразу определяем политику HA (запускаем также на первом сервере):

docker exec rabbit rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'

Запускаем на втором сервере вторую ноду будущего кластера:

docker run -dit -h docker-rabbitmq-02.domain.tld               \
           --name rabbit                                       \
           -p "4369:4369"                                      \
           -p "5671:5671"                                      \
           -p "15671:15671"                                    \
           -p "25672:25672"                                    \
           -p "35197:35197"                                    \
           -e "RABBITMQ_ERLANG_COOKIE=S0meL3ttersAndNumber5"   \
           -v rabbitmq_data:/var/lib/rabbitmq                  \
           -v /opt/ssl:/opt/ssl:ro                             \
           --restart unless-stopped                            \
           zimniy/rabbitmq:latest

Со второго сервера подключаем вторую ноду к первой:

docker exec rabbit rabbitmqctl stop_app
docker exec rabbit rabbitmqctl join_cluster rabbit@docker-rabbitmq-01.domain.tld
docker exec rabbit rabbitmqctl start_app

Всё, кластер собран и уже работает. Можно подключаться с учёткой guest:guest.

Фабула

Короче, теперь про то, какая гадость этот docker-compose…

Оказывается, у него есть два параметра: hostname и domainname.

И если задать только hostname как FQDN «docker-rabbitmq-01.domain.tld», то оно в контейнере обрезается до «docker-rabbitmq-01». Так что нужно обязательно задать ещё и domainname «domain.tld» иначе Erlang, на котором написан RabbitMQ, свой FQDN не определит и будет игнорировать попытки подключения.

В общем, используя docker-compose, нужно делать так:

docker-rabbitmq:
  image: zimniy/rabbitmq:latest
  container_name: rabbit
  hostname: docker-rabbitmq-01.domain.tld 
  domainname: domain.tld
  restart: unless-stopped
  ports:
    - "4369:4369"
    - "5671:5671"
    - "15671:15671"
    - "25672:25672"
    - "35197:35197"
  volumes:
    - "/opt/ssl:/opt/ssl:ro"
    - "rabbitmq_data:/var/lib/rabbitmq"

Внимание, hostname задать именно как FQDN.

И, для того, чтобы это выяснить, пришлось аж в исходники лезть…

Умные часы от Samsung — недоумение

Почему «умные часы» на ОС Tizen от Samsung нормально не подключаются к телефону на ОС Tizen от Samsung (ссылка сдохла — привет, Гнусмас)?

Цирк какой-то, блин. Нет, bluetooth отрабатывает как положено — устройства соединяются. Только толку с этого, если софта, обеспечивающего взаимодействие часов с телефоном нет, как класса? С Android 4.3 часы, кстати, тоже не взаимодействуют.

Снобские такие часы — сами выбирают себе друзей.

Что, самому софт писать что ли? Так документации нормальной нет. Сравнивать developer.android.com и developer.tizen.org никто в здравом уме не возьмётся…

Хорошо, хоть, реверс-инжинирингом заниматься не надо. Хотя, лучше не зарекаться…

P.S.: пост был в три раза длиннее, но я повыкидывал мат.

Twitch и гов^Wбраузеры

Хромог не тянет работу с twitch.tv — лагает и тупит как троечник перед экзаменатором. А Жырнолис жрёт оперативку и тянет.

Вердикт: оба — говно. Но Жырнолис работает, а Хромог — не очень.

P.S.: Microsoft Edge работает, раму не жрёт и рекламу режет uBlock’ом. Я в смятении…

P.P.S: Edge таки тупит………..

P.P.P.S: все браузеры у меня люто тупят на твитче. Только в Интернет Испортиле не проверял.

WordPress, б…ь!

Вот какого хрена в меню залогиненного пользователя 3 (sic!) ссылки из 4 ведут в редактирование профиля? Очень актуальная информация, ага…

Ну да ладно, направление раскопок я узнал. Осталось разобраться в структуре этого меню и скорректировать под свой сайт.