- 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
144 lines
4.5 KiB
YAML
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
|