Я не могу запустить официальный образ nifi в Docker Swarm.
Когда я запускаю контейнер в обычном режиме:
docker run --name nifi -p 8080:8080 -d apache/nifi:latest
все работает нормально, и я могу получить доступ к приложению под http://localhost:8080/nifi
Однако, когда я пытаюсь запустить приложение в Docker Swarm:
docker swarm init
docker stack deploy -c docker-compose.yml nifi
Со следующим docker-compose.yml
version: "3"
services:
zookeeper:
hostname: zookeeper
container_name: zookeeper
image: 'bitnami/zookeeper:latest'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
nifi:
image: apache/nifi:latest
ports:
- "8080:8080"
expose:
- "8080"
environment:
- NIFI_WEB_HTTP_PORT=8080
- NIFI_WEB_HTTP_HOST=localhost
- NIFI_CLUSTER_IS_NODE=true
- NIFI_CLUSTER_NODE_PROTOCOL_PORT=8082
- NIFI_ZK_CONNECT_STRING=zookeeper:2181
- NIFI_ELECTION_MAX_WAIT=1 min
Приложение запускается (zookeeper и nifi), но недоступно при http://localhost:8080/nifi
curl http://localhost:8080
curl: (52) Empty reply from server
Однако работает следующий код:
docker exec -it 629ecd6949d9 curl -v http://localhost:8080
показывает, что nifi запущен и работает, но по какой-то причине он не работает извне контейнера.
Я близок, чтобы начать бить головой о стену. Как я могу это исправить?
Лучший
Paweł