$ ps aux | grep everything
kill: everything: no such process
Yep. You just nuked it all. 💀
Hope you saved your work...
classic rookie move, honestly
$ ps aux | grep tutto
kill: tutto: nessun processo trovato
Sì. Hai fatto saltare tutto. 💀
Speriamo tu abbia salvato...
classica mossa da principiante, onestamente
Example with made-up data
$ git log --oneline container-migration
Rossi Meccanica’s business app moves from a hand-configured server to containers described in a file: every change is tested, approved and released in minutes, and rolling back is one command.
pipeline #214 · “fix: VAT on credit notes” · branch main
Total: 3 min 3 s of automation + 1 approval click.
# docker-compose.yml – Rossi Meccanica business app (excerpt) services: proxy: # automatic HTTPS, certificates renew themselves image: caddy:2.8 # the only port open to the outside ports: ["443:443"] app: # exact version: rolling back = changing this number image: registry.rossi-meccanica.example/gestionale:1.14.2 # passwords kept out of the code, never in the repository env_file: .env depends_on: db: { condition: service_healthy } # if it hangs, it restarts by itself restart: unless-stopped db: image: postgres:16 # data survives even when the container is recreated volumes: ["db-data:/var/lib/postgresql/data"] healthcheck: test: ["CMD", "pg_isready", "-U", "gestionale"] backup: image: registry.rossi-meccanica.example/pg-backup:1.3 # database dump every night at 1:00, then off site environment: { SCHEDULE: "0 1 * * *" }
Esempio con dati fittizi
$ git log --oneline migrazione-container
Il gestionale di Rossi Meccanica passa da un server configurato a mano a container descritti in un file: ogni modifica viene provata, approvata e pubblicata in pochi minuti, e si torna indietro con un comando.
pipeline #214 · “fix: calcolo IVA sulle note di credito” · ramo main
Totale: 3 min 3 s di automazione + 1 clic di approvazione.
# docker-compose.yml – gestionale Rossi Meccanica (estratto) services: proxy: # HTTPS automatico, certificati rinnovati da solo image: caddy:2.8 # l’unica porta aperta verso l’esterno ports: ["443:443"] app: # versione precisa: tornare indietro = cambiare questo numero image: registry.rossi-meccanica.example/gestionale:1.14.2 # password fuori dal codice, mai nel repository env_file: .env depends_on: db: { condition: service_healthy } # se si blocca, riparte da solo restart: unless-stopped db: image: postgres:16 # i dati restano anche se il container viene ricreato volumes: ["db-data:/var/lib/postgresql/data"] healthcheck: test: ["CMD", "pg_isready", "-U", "gestionale"] backup: image: registry.rossi-meccanica.example/pg-backup:1.3 # copia del database ogni notte all’1:00, poi fuori sede environment: { SCHEDULE: "0 1 * * *" }
a1b2c3d fix: finally fixed that one bug 🐛
e4f5g6h feat: added 3 new bugs while fixing 1
i7j8k9l chore: blamed git for everything
m1n2o3p fix: removed console.logs (most of them)
q4r5s6t deploy: works on prod. somehow.
u7v8w9x docs: updated README to say "it works"
y1z2a3b init: it works on my machine ¯\_(ツ)_/¯
hey... you still there? 👀
ehi... sei ancora lì? 👀
interact with the page to dismissinteragisci con la pagina per chiudere