Использование mosquitto auth plugin в docker
Создаю с помощью docker compose мини сервер с базой данных postgres и mosquitto mqtt. Появилась необходимость использовать mosquitto auth plugin. Хочу чтобы авторизация происходила с помощью таблицы из базы данных postgres. В интернете видел инструкции по использованию mosquitto auth plugin c postgres. Но я никак не могу найти инструкцию, как добавить к mosquitto auth plugin.
Ниже мой docker compose
version: "3.9"
services:
postgres:
container_name: postgres_container
image: postgres:14.8-alpine3.18
command:
- "postgres"
- "-c"
- "max_connections=50"
- "-c"
- "shared_buffers=1GB"
- "-c"
- "effective_cache_size=4GB"
- "-c"
- "work_mem=16MB"
- "-c"
- "maintenance_work_mem=512MB"
- "-c"
- "random_page_cost=1.1"
- "-c"
- "temp_file_limit=10GB"
- "-c"
- "log_min_duration_statement=200ms"
- "-c"
- "idle_in_transaction_session_timeout=10s"
- "-c"
- "lock_timeout=1s"
- "-c"
- "statement_timeout=60s"
- "-c"
- "shared_preload_libraries=pg_stat_statements"
- "-c"
- "pg_stat_statements.max=10000"
- "-c"
- "pg_stat_statements.track=all"
environment:
POSTGRES_DB: ${DATABASE_NAME}
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
PGDATA: "/var/lib/postgresql/data/pgdata"
volumes:
- ./postgres-data:/var/lib/postgresql/data
- ../2. Init Database:/docker-entrypoint-initdb.d
- ./mosquitto/init-mqtt-auth-db.sh:/docker-entrypoint-initdb.d/init-mqtt-auth-db.sh
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DATABASE_USER} -d ${DATABASE_NAME}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
deploy:
resources:
limits:
cpus: '1'
memory: 4G
networks:
- postgres
pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4:7.2
environment:
PGADMIN_DEFAULT_EMAIL: ${PG_DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PG_DEFAULT_ADMIN_PASSWORD}
PGADMIN_CONFIG_SERVER_MODE: "False"
volumes:
- pgadmin-data:/var/lib/pgadmin
ports:
- "5050:80"
restart: unless-stopped
deploy:
resources:
limits:
cpus: '0.5'
memory: 1G
networks:
- postgres
mqtt-broker:
image: eclipse-mosquitto:latest
user: mosquitto
volumes:
- ./mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf
- ./mosquitto/config/password.txt:/mosquitto/password.txt
- ./mosquitto/log:/mosquitto/log
- data:/mosquitto/data
ports:
- target: 1883
published: 1883
protocol: tcp
mode: host
- target: 9001
published: 9001
protocol: tcp
mode: host
networks:
mqtt-net:
ipv4_address: 172.100.10.10
mqtt-pub:
image: eclipse-mosquitto:latest
command: sh -c "mosquitto_pub -h mqtt-broker -t test -m 'Hello World' -u Frog -P 1234"
depends_on:
- mqtt-broker
networks:
mqtt-net:
ipv4_address: 172.100.10.11
mqtt-sub:
image: eclipse-mosquitto:latest
command: sh -c "mosquitto_sub -h mqtt-broker -t test -u Frog -P 1234"
depends_on:
- mqtt-broker
networks:
mqtt-net:
ipv4_address: 172.100.10.12
volumes:
postgres-data:
pgadmin-data:
data:
name: "mqtt-broker-data"
networks:
postgres:
driver: bridge
mqtt-net:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.100.10.0/24
postgres-data:
Напишите, как добавить к mosquitto auth плагин, который будет работать на основе контейнера с postgres. Я пробовал просто добавить файл к volumes, однако там нужно билдить его с помощью make. При этом нужно указывать путь к mosquitto, а я не понимаю, где он находится в контейнере mqtt-broker