Ne perdez plus votre bash history sur docker

Si vous êtes comme moi, et avez tendance à utiliser docker comme un bac à sable, je comprends votre frustration de n'avoir jamais d'historique de vos commandes…

docker-bash-histo

Si vous êtes comme moi, et avez tendance à utiliser docker comme un bac à sable, je comprends votre frustration de n'avoir jamais d'historique de vos commandes (bash history).
Incapable de faire ctrl + r un jour sur deux, mais ça, c'était avant de chercher une solution ?

Partage du fichier .bash_history 

Nous allons créer un fichier .bash_history, puis ajouter un partage dans notre fichier docker-compose.yml

version: '3.7'

services:
  tools:
    image: kiora/tools:latest
    volumes:
      - .bash_history:/kiora/home/.bash_history

On start nos container et on test, le fichier reste vide ?.
Mais c'est normal, le fichier n'est écrit que lorsqu'on quitte bash, c'est-à-dire en faisant un ctrl + d.
Trop cool, ça marche. Mais on peut faire mieux ?

Volume nommer

Nous allons écrire notre fichier dans un dosser qui va être monter sur un volume nommer.
Pour changer le dossier il faut une variable d'environnement.

version: '3.7'

services:
  tools:
    image: kiora/tools:latest
    environment
      - HISTFILE=/home/kiora/hist/.bash_history
    volumes:
      - bashhistory:/home/kiora/hist
volumes:
  bashhistory:

Et voilà, nous n'allons plus jamais perdre notre bash history sous docker (sauf avec un docker volume rm bashhistory ?)

← Tous les articles