Aggiunta configurazione tramite variabili d'ambiente e fix Docker Hub secrets
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 23s
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 23s
- Aggiunto supporto ENV variables nel Dockerfile: * INVERTER_DEVICE, MQTT_SERVER, MQTT_PORT, MQTT_TOPIC * MQTT_DEVICENAME, MQTT_USERNAME, MQTT_PASSWORD * FORCE_DISCOVERY, SKIP_DISCOVERY - Implementata funzione update_mqtt_config() in entrypoint.sh * Aggiorna automaticamente mqtt.json da ENV variables all'avvio * Backup automatico configurazione originale - Fix workflow Docker build: * Login Docker Hub solo se secrets configurati * Push solo se secrets disponibili (evita errori CI/CD) * Build funziona anche senza secrets (utile per test locali) - Aggiornato docker-compose.yml con esempio ENV variables - Creata documentazione completa DOCKER_SETUP.md: * Guida configurazione variabili d'ambiente * Esempi docker-compose e docker run * Guida configurazione secrets Gitea * Troubleshooting e health check Ora è possibile configurare completamente il container senza modificare file
This commit is contained in:
@@ -14,13 +14,50 @@ TEMP_CONF="/tmp/inverter_discovered.conf"
|
||||
INVERTER_DEVICE="${INVERTER_DEVICE:-/dev/ttyUSB0}"
|
||||
FORCE_DISCOVERY="${FORCE_DISCOVERY:-false}"
|
||||
SKIP_DISCOVERY="${SKIP_DISCOVERY:-false}"
|
||||
MQTT_SERVER="${MQTT_SERVER:-192.168.1.37}"
|
||||
MQTT_PORT="${MQTT_PORT:-1883}"
|
||||
MQTT_TOPIC="${MQTT_TOPIC:-homeassistant}"
|
||||
MQTT_DEVICENAME="${MQTT_DEVICENAME:-voltronic}"
|
||||
MQTT_USERNAME="${MQTT_USERNAME:-}"
|
||||
MQTT_PASSWORD="${MQTT_PASSWORD:-}"
|
||||
|
||||
echo "Configuration:"
|
||||
echo " Device: $INVERTER_DEVICE"
|
||||
echo " Force Discovery: $FORCE_DISCOVERY"
|
||||
echo " Skip Discovery: $SKIP_DISCOVERY"
|
||||
echo " MQTT Server: $MQTT_SERVER:$MQTT_PORT"
|
||||
echo " MQTT Topic: $MQTT_TOPIC"
|
||||
echo " MQTT Device: $MQTT_DEVICENAME"
|
||||
echo ""
|
||||
|
||||
# Function to update MQTT configuration
|
||||
update_mqtt_config() {
|
||||
local mqtt_conf="/etc/inverter/mqtt.json"
|
||||
echo "Updating MQTT configuration from environment variables..."
|
||||
|
||||
# Backup original
|
||||
cp $mqtt_conf ${mqtt_conf}.backup
|
||||
|
||||
# Update MQTT settings using jq
|
||||
jq --arg server "$MQTT_SERVER" \
|
||||
--arg port "$MQTT_PORT" \
|
||||
--arg topic "$MQTT_TOPIC" \
|
||||
--arg devicename "$MQTT_DEVICENAME" \
|
||||
--arg username "$MQTT_USERNAME" \
|
||||
--arg password "$MQTT_PASSWORD" \
|
||||
'.server = $server | .port = $port | .topic = $topic | .devicename = $devicename | .username = $username | .password = $password' \
|
||||
$mqtt_conf > ${mqtt_conf}.tmp && mv ${mqtt_conf}.tmp $mqtt_conf
|
||||
|
||||
echo "✓ MQTT configuration updated"
|
||||
echo " Server: $MQTT_SERVER:$MQTT_PORT"
|
||||
echo " Topic: $MQTT_TOPIC/sensor/$MQTT_DEVICENAME"
|
||||
[ ! -z "$MQTT_USERNAME" ] && echo " Auth: Enabled (username: $MQTT_USERNAME)"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Update MQTT config from ENV on startup
|
||||
update_mqtt_config
|
||||
|
||||
# Function to update config file with discovered values
|
||||
update_config_with_discovery() {
|
||||
local qmod=$1
|
||||
|
||||
Reference in New Issue
Block a user