odoo_mqtt/odoo/docker-compose.dev.yaml
matthias.lotz 4de3401416 fix: odoo/ als normales Verzeichnis tracken + Bugfix db_name + Feature-Docs
- git rm --cached odoo: Gitlink-Eintrag entfernt, odoo/ wird jetzt korrekt versioniert
- odoo/src/odoo-dev.conf: db_name = odoo gesetzt (behebt 404 bei mehreren DBs)
- docs/FEATURE_REQUEST_DYNAMIC_PARSER_REGISTRY.md: Feature Request inkl. ADR
- docs/IMPLEMENTATION_PLAN_DYNAMIC_PARSER_REGISTRY.md: 3-Phasen-Implementierungsplan
- iot_bridge/README.md: Doku aktualisiert
2026-03-10 17:17:59 +01:00

144 lines
4.5 KiB
YAML

# Development Docker Compose für Odoo mit VS Code Integration
# Erweiterte Version der originalen docker-compose.yaml für Development
#name: odoo-18
services:
odoo-dev:
image: gitea.lan.hobbyhimmel.de/hobbyhimmel/odoo:18.0-dev
container_name: hobbyhimmel_odoo_${CONTAINER_NAME_EXTENSION}
user: "100:101" # Gleiche User-ID wie Production für Volume-Kompatibilität
environment:
- ODOO_CONFIG_FILE=/etc/odoo/odoo-dev.conf
- ODOO_EXTRA_ARGS=
- PGHOST=${DB_HOST}
- PGPORT=${DB_PORT}
- PGUSER=${DB_USER}
- PGPASSWORD=${DB_PASSWORD}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
# Development Environment Variables
- ODOO_DEV=${ODOO_DEV:-0} # Aktiviert Development-Modus
- ODOO_DEBUG=${ODOO_DEBUG:-0} # Wird durch Shell-Env oder .env überschreibbar
- PYTHONPATH=/mnt/extra-addons
volumes:
- odoo18-conf:/etc/odoo
- odoo18-data:/var/lib/odoo
# Development-spezifische Volumes
- ../extra-addons:/mnt/extra-addons:rw # Base extra-addons directory
- ./src:/opt/odoo/src:rw # Source-Dateien für schnelle Änderungen
# VS Code Development Container Support
- /var/run/docker.sock:/var/run/docker.sock:ro # Docker Socket für VS Code
ports:
- "${ODOO_PORT:-8069}:8069"
- "8071:8071" # HTTPS
- "8072:8072" # Longpolling
- "4338:5678" # Debug Port für VS Code
stdin_open: true # -i in Docker run (interactive)
tty: true # -t in Docker run (allocate a pseudo-TTY)
depends_on:
- db
restart: unless-stopped
networks:
- npm-nw
- odoo18-nw
# Development-spezifische Einstellungen
command: ["odoo"] # Standard-Start, kann überschrieben werden
# working_dir: /opt/odoo/workspace
db:
image: postgres:15
container_name: hobbyhimmel_odoo_${CONTAINER_NAME_EXTENSION}_db
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=postgres
- PGDATA=/var/lib/postgresql/data
volumes:
- "odoo18-db:/var/lib/postgresql/data"
shm_size: '1g' # Shared memory size for PostgreSQL
restart: unless-stopped
networks:
- odoo18-nw
# Für Development kann der DB-Port freigeschaltet werden
ports:
- "5432:5432"
pgadmin:
image: dpage/pgadmin4:latest
container_name: hobbyhimmel_odoo_${CONTAINER_NAME_EXTENSION}_pgadmin
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_EMAIL:-admin@admin.com}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD:-admin}
- PGADMIN_CONFIG_SERVER_MODE=False
- PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=False
volumes:
- pgadmin-data:/var/lib/pgadmin
- ./pgadmin/servers.json:/pgadmin4/servers.json:ro
- ./pgadmin/preferences.json:/pgadmin4/preferences.json:ro
ports:
- "${PGADMIN_PORT:-5050}:80"
depends_on:
- db
restart: unless-stopped
networks:
- odoo18-nw
mosquitto:
image: eclipse-mosquitto:2
container_name: hobbyhimmel_odoo_${CONTAINER_NAME_EXTENSION}_mosquitto
volumes:
- mosquitto-data:/mosquitto/data
- mosquitto-logs:/mosquitto/log
- ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
ports:
- "1883:1883" # MQTT unencrypted (für lokale Tests)
- "9001:9001" # WebSockets (optional)
restart: unless-stopped
networks:
- odoo18-nw
iot-bridge:
image: iot_mqtt_bridge:latest
container_name: hobbyhimmel_odoo_${CONTAINER_NAME_EXTENSION}_iot_bridge
environment:
- LOG_LEVEL=DEBUG
- PYTHONUNBUFFERED=1
- BRIDGE_PORT=8080
- BRIDGE_API_TOKEN=${BRIDGE_API_TOKEN:-} # Optional: Bearer token for auth
command: python3 /app/main.py --config /app/config.dev.yaml
volumes:
# Mount entire source code folder for development
- ../iot_bridge:/app
# Persistent storage for config-active.yaml
- iot-bridge-data:/data
ports:
- "8080:8080" # HTTP Config API
depends_on:
- mosquitto
- odoo-dev
restart: unless-stopped
networks:
- odoo18-nw
volumes:
odoo18-db:
odoo18-conf:
odoo18-data:
pgadmin-data:
mosquitto-data:
mosquitto-logs:
iot-bridge-data:
networks:
odoo18-nw:
npm-nw:
# external: true # Uncomment, if this network is defined by the nginx-proxy-manager