test: change compose

This commit is contained in:
2026-01-04 13:53:38 +01:00
parent 55d8bd53df
commit 1c29a7ac13
+56 -32
View File
@@ -1,6 +1,42 @@
version: "3.8" version: "3.8"
services: services:
mysql:
image: mysql:8.0
container_name: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=rootpass
- MYSQL_DATABASE=lambdaiot
volumes:
- ../ai-improved.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-prootpass"]
interval: 2s
timeout: 2s
retries: 10
mosquitto:
image: eclipse-mosquitto:2.0
container_name: mosquitto
ports:
- "1883:1883"
volumes:
- mosquitto_data:/mosquitto/data
- mosquitto_log:/mosquitto/log
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
- ./aclfile:/mosquitto/data/aclfile:ro
healthcheck:
test: ["CMD", "mosquitto", "--help"]
interval: 2s
timeout: 2s
retries: 10
environment:
- MOSQ_USER=testuser
- MOSQ_PASS=testpass
# ensure a password file exists (in the writable data volume) and start mosquitto with our config
command: sh -c "mkdir -p /mosquitto/data; mosquitto_passwd -c -b /mosquitto/data/passwordfile ${MOSQ_USER} ${MOSQ_PASS} >/dev/null 2>&1 || true; chown -R mosquitto:mosquitto /mosquitto/data || true; /usr/sbin/mosquitto -c /mosquitto/config/mosquitto.conf"
server: server:
build: build:
context: .. context: ..
@@ -16,45 +52,33 @@ services:
- MQTT_TOPIC=lambdaiot - MQTT_TOPIC=lambdaiot
- MQTT_USERNAME=testuser - MQTT_USERNAME=testuser
- MQTT_PASSWORD=testpass - MQTT_PASSWORD=testpass
- DB_HOST=mysql
- DB_PORT=3306
- DB_USER=root
- DB_PASSWORD=rootpass
depends_on: depends_on:
- mysql
- mosquitto - mosquitto
# server image now waits for MQTT broker itself via entrypoint healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 10s
timeout: 5s
retries: 5
# no command override needed # no command override needed
mosquitto: phpmyadmin:
image: eclipse-mosquitto:2.0 image: phpmyadmin/phpmyadmin
container_name: mosquitto container_name: phpmyadmin
ports: ports:
- "1883:1883" - "8081:80"
volumes:
- mosquitto_data:/mosquitto/data
- mosquitto_log:/mosquitto/log
- ./mosquitto.conf:/mosquitto/config/mosquitto.conf
- ./aclfile:/mosquitto/data/aclfile:ro
environment: environment:
- MOSQ_USER=testuser - PMA_HOST=mysql
- MOSQ_PASS=testpass - PMA_PORT=3306
# ensure a password file exists (in the writable data volume) and start mosquitto with our config - PMA_USER=root
command: sh -c "mkdir -p /mosquitto/data; mosquitto_passwd -c -b /mosquitto/data/passwordfile ${MOSQ_USER} ${MOSQ_PASS} >/dev/null 2>&1 || true; chown -R mosquitto:mosquitto /mosquitto/data || true; /usr/sbin/mosquitto -c /mosquitto/config/mosquitto.conf" - PMA_PASSWORD=rootpass
healthcheck:
test: ["CMD", "sh", "-c", "nc -z localhost 1883 || exit 1"]
interval: 2s
timeout: 2s
retries: 10
subscriber:
image: python:3.11-slim
volumes:
- ./subscribe.py:/app/subscribe.py
working_dir: /app
environment:
- MQTT_BROKER=mosquitto:1883
- MQTT_TOPIC=lambdaiot
- MQTT_USERNAME=testuser
- MQTT_PASSWORD=testpass
command: sh -c "pip install paho-mqtt && python subscribe.py"
depends_on: depends_on:
- mosquitto - mysql
volumes: volumes:
mosquitto_data: mosquitto_data: