ECONNREFUSED 127.0.0.1:3306 - "Unknown database error" dopo aggiornamento immagine Ghost in Docker

ECONNREFUSED 127.0.0.1:3306 - "Unknown database error" dopo aggiornamento immagine Ghost in Docker
💡
Da Ghost 5.0 in poi

Risoluzione errore "ECONNREFUSED 127.0.0.1:3306 - "Unknown database error"" dopo aver aggiornato l'immagine di Ghost in Docker.

Questo è dovuto al fatto che Ghost dalla versione 5.0 ha annunciato che MySQL 8 sarebbe stato l'unico database ufficialmente supportato negli ambienti di produzione, ed è quindi quello attivato di default, ma se noi avevamo tutto su SQLite e vogliamo continuare ad utilizzarlo, niente paura, di seguito i metodi di risoluzione:

CLI

  1. Ferma e rimuovi il container Ghost esistente:
docker stop nome_container
docker rm nome_container

2. Ricrea un nuovo container docker con le seguenti variabili:

-e database__client=sqlite3 \
-e database__connection__filename="content/data/ghost.db" \
-e database__useNullAsDefault=true \
-e database__debug=false \

Esempio:

docker run -d --name ghost -e NODE_ENV=development -e database__client=sqlite3  -e database__connection__filename="content/data/ghost.db" -e database__useNullAsDefault=true ghost
💡
Ricordate di controllare il percorso del vostro file "ghost.db", quello segnalato è quello di default.

Portainer

  1. Fermiamo il container cliccando su "Stop";
  2. Clicchiamo su "Duplicate/Edit";

3.   Nella sezione in basso "Advanced container settings" clicchiamo su "Env":

4.   Clicchiamo su "Add an environment variable" e aggiungiamo le 3 variabili:

name value
database__client sqlite3
database__connection__filename "content/data/ghost.db"
database__useNullAsDefault true

6.   Infine clicchiamo su "Deploy the container" e il gioco è fatto.

Guarda la soluzione su Portainer.