Docker Compose
Actualitza una instal·lació feta amb el projecte de docker-compose
- Abans d’actualitzar
- De la 7.2 a la 7.3
- 1. Baixa les imatges noves
- 2. Torna a crear els contenidors
- 3. Comprova l’actualització
- Tornar enrere
El projecte de docker-compose executa tres contenidors: MySQL (mysqldb), AnsibleForms (app) i l’RTE que executa els playbooks (rte). AnsibleForms i l’RTE fan servir l’etiqueta d’imatge 7, que sempre apunta a la versió 7.x més nova. Una actualització torna a baixar les imatges i torna a crear els contenidors amb una imatge que ha canviat. Tot el que ha de persistir es desa a la carpeta data i es conserva.
Abans d’actualitzar
Prepara l’actualització de manera que puguis tornar enrere si alguna cosa va malament:
- Fes una còpia de seguretat a Configuració → Còpies de seguretat. La versió nova actualitza l’esquema de la base de dades en el primer inici.
- Llegeix el registre de canvis de les versions entre la teva i la nova.
- Passes a una versió major nova? Segueix primer Actualitzar a la v7.
- Véns de la 6.5? El projecte 6.x, a la seva branca
v6, no té contenidorrte. Actualitza la teva còpia del projecte a la seva brancamain, conservant la configuració del teu.envi la teva carpetadata, perquèdocker-compose.ymltingui el serveirte. Aquest fitxer compose defineixCONFIG_SEED_PATH, i una carpetadatade la 6.x no téseed.yaml: copiadata/seed.yamldel repositori, i afegeixRTE_TOKEN(com a mínim 16 caràcters) al teu.env, tal com el té el.envdel repositori. Sense això l’aplicació es nega a iniciar-se. Les imatges de la 7 s’executen amb l’uid 1000 en lloc de root: dona una vegada la carpetadataa aquest usuari, deixant els fitxers de MySQL a MySQL, ambsudo find data -path data/mysql -prune -o -exec chown 1000:1000 {} +. La carpetadata/sshara es munta a/home/node/.sshen lloc de/root/.ssh. - Véns de la 7.2? Actualitza
docker-compose.ymlidata/seed.yamlalhora: consulta primer De la 7.2 a la 7.3.
De la 7.2 a la 7.3
Fins a la 7.2.0 el servei rte rebia la configuració de la base de dades i el seu runner, declarat a data/seed.yaml, s’executava en mode database, obsolet a la 7.3.0 i eliminat a la 8.0.0. Des de la 7.3.0 l’aplicació truca a l’RTE a http://rte:8000 i hi manté un WebSocket obert (RTE_MODE=inbound, consulta Modes), i l’RTE no té cap configuració de la base de dades. Agafa tots dos fitxers de la branca main del repositori, conservant el teu .env:
| Fitxer | Què canvia |
|---|---|
docker-compose.yml | El servei rte ja no llegeix .env: rep RTE_MODE=inbound, RTE_TOKEN i RTE_FILES=local, i cap DB_* |
data/seed.yaml | Una credencial d’RTE rte, amb url: http://rte:8000 i password: ${RTE_TOKEN}, i el runner rte amb rte_mode: inbound i credential: rte |
Canvia’ls tots dos. Amb només el fitxer compose nou, el seed manté el runner rte en mode database: l’aplicació crida l’RTE com si fos un de la 7.2, cosa que el nou RTE no respon, i no s’executa cap playbook. Un seed que hagis canviat tu mateix necessita la mateixa credencial i el mateix rte_mode.
Un runner que ha creat el seed continua gestionat, de només lectura a Connexions → Runners, fins i tot després de treure CONFIG_SEED_PATH: només un seed que s’aplica allibera un runner que ja no declara. Així que conserva el seed i defineix-hi rte_mode, en lloc de treure CONFIG_SEED_PATH per canviar el runner a mà.
L’instal·lador ho fa tot sol: la seva actualització substitueix docker-compose.yml, i data/seed.yaml quan és un dels que venien amb el repositori, sense canvis. Un que s’hagi canviat a mà es conserva, i el nou es desa al costat.
1. Baixa les imatges noves
Baixa les imatges més noves de les etiquetes de docker-compose.yml:
cd /srv/apps/ansibleforms-docker
sudo docker compose pull
cd /srv/apps/ansibleforms-docker
sudo podman-compose pull
2. Torna a crear els contenidors
Torna a iniciar el projecte; es tornen a crear els contenidors amb una imatge que ha canviat:
sudo docker compose up -d
sudo podman-compose down
sudo podman-compose up -d
3. Comprova l’actualització
Segueix el registre d’AnsibleForms mentre s’inicia. El primer inici d’una versió nova actualitza l’esquema de la base de dades, i l’RTE s’inicia quan AnsibleForms està en bon estat:
sudo docker compose logs -f app
sudo podman-compose logs -f app
A AnsibleForms, Ajuda → Quant a mostra la versió que s’està executant, i Configuració → Estat mostra la salut de la base de dades, de l’esquema i dels altres sistemes dels quals depèn AnsibleForms.
Tornar enrere
Per tornar a la versió que executaves abans, la que mostrava Ajuda → Quant a abans de l’actualització, fixa la seva etiqueta exacta a docker-compose.yml tant a la imatge d’AnsibleForms com a la de l’RTE, en lloc de 7, i torna a executar el pas 2. Si aquella versió no s’inicia amb la base de dades actualitzada, restaura la còpia de seguretat que vas fer a Configuració → Còpies de seguretat. Torna a posar les etiquetes a 7 per tornar a rebre actualitzacions.
VÍDEO: Com actualitzar AnsibleForms