Agregar modulo de instalacion de Docker

- modules/docker.sh: instala Docker Engine (docker-ce, docker-ce-cli,
  containerd.io, docker-buildx-plugin, docker-compose-plugin) via repositorio
  apt oficial de Docker; agrega el usuario al grupo docker para operar sin sudo;
  instala Lazydocker en ~/.local/bin/ desde la ultima release de GitHub
- config/modules: docker corre despues de registry y antes de thunderbird
- CLAUDE.md y README.md: documentan el nuevo modulo en la tabla de orden de ejecucion

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 08:29:26 -03:00
parent bd78fd9fbe
commit a8848295ff
4 changed files with 105 additions and 0 deletions
+1
View File
@@ -37,6 +37,7 @@ Current modules in execution order:
- `bootstrap` — installs `yq` and `age` (required by all other modules)
- `ssh` — decrypts `secrets/sshKeys.tar.gz.age` with `age` and installs keys into `~/.ssh`
- `registry` — reads `config/registry.yaml` and applies every entry (packages, dotfiles, services, drivers, audio)
- `docker` — installs Docker Engine, Docker Compose plugin, adds user to `docker` group, and installs Lazydocker
- `thunderbird` — installs Thunderbird (snap) and restores profile from `secrets/thunderbirdProfile.zip`
- `claudeCode` — configures the Anthropic apt repository and installs `claude-code`
- `easyEffects` — restores EasyEffects config and presets from `secrets/easyEffectsConfig.zip`
+1
View File
@@ -65,6 +65,7 @@ El orden está definido en `config/modules` (un módulo por línea, `#` para com
| `bootstrap` | Instala `yq` y `age` (requeridos por los demás módulos) |
| `ssh` | Descifra e instala claves SSH en `~/.ssh` |
| `registry` | Aplica todo lo declarado en `config/registry.yaml` |
| `docker` | Instala Docker Engine, Docker Compose, agrega el usuario al grupo `docker` e instala Lazydocker |
| `thunderbird` | Instala Thunderbird (snap) y restaura el perfil |
| `claudeCode` | Configura el repositorio apt de Anthropic e instala `claude-code` |
| `easyEffects` | Restaura configuración y presets de EasyEffects |
+1
View File
@@ -5,6 +5,7 @@
bootstrap
ssh
registry
docker
thunderbird
claudeCode
easyEffects
+102
View File
@@ -0,0 +1,102 @@
#!/usr/bin/env bash
set -euo pipefail
source "$stpRoot/lib/log.sh"
source "$stpRoot/lib/utils.sh"
readonly dockerKeyring="/etc/apt/keyrings/docker.asc"
readonly dockerSources="/etc/apt/sources.list.d/docker.list"
dockerIsInstalled() {
util::cmdExists docker
}
dockerRepositoryIsConfigured() {
[[ -f "$dockerSources" ]]
}
userIsInDockerGroup() {
groups "$USER" | grep -qw docker
}
lazydockerIsInstalled() {
util::cmdExists lazydocker
}
latestGithubReleaseTag() {
local repository="$1"
curl -fsSL "https://api.github.com/repos/${repository}/releases/latest" \
| grep '"tag_name"' \
| cut -d'"' -f4
}
addDockerSigningKey() {
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo tee "$dockerKeyring" > /dev/null
sudo chmod a+r "$dockerKeyring"
log::ok "Clave GPG de Docker instalada"
}
addDockerRepository() {
local ubuntuCodename
ubuntuCodename="$(. /etc/os-release && echo "$VERSION_CODENAME")"
echo "deb [arch=amd64 signed-by=${dockerKeyring}] https://download.docker.com/linux/ubuntu ${ubuntuCodename} stable" \
| sudo tee "$dockerSources" > /dev/null
sudo apt-get update -qq
log::ok "Repositorio Docker configurado para Ubuntu ${ubuntuCodename}"
}
installDockerPackages() {
sudo apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
log::ok "Docker Engine y Docker Compose instalados"
}
addUserToDockerGroup() {
sudo usermod -aG docker "$USER"
log::ok "Usuario $USER agregado al grupo docker"
log::info "Cerrá sesión y volvé a entrar para usar Docker sin sudo"
}
installLazydocker() {
local version versionNumber temporaryDirectory
version="$(latestGithubReleaseTag "jesseduffield/lazydocker")"
versionNumber="${version#v}"
temporaryDirectory="$(mktemp -d)"
trap 'rm -rf "$temporaryDirectory"' RETURN
curl -fsSL \
"https://github.com/jesseduffield/lazydocker/releases/download/${version}/lazydocker_${versionNumber}_Linux_x86_64.tar.gz" \
| tar -xz -C "$temporaryDirectory"
mkdir -p "$HOME/.local/bin"
mv "$temporaryDirectory/lazydocker" "$HOME/.local/bin/lazydocker"
log::ok "Lazydocker ${version} instalado en ~/.local/bin/"
}
if dockerIsInstalled; then
log::info "Docker ya instalado: $(docker --version)"
else
log::info "Instalando Docker Engine..."
util::requireSudo
if ! dockerRepositoryIsConfigured; then
addDockerSigningKey
addDockerRepository
fi
installDockerPackages
fi
if userIsInDockerGroup; then
log::info "Usuario $USER ya en el grupo docker"
else
util::requireSudo
addUserToDockerGroup
fi
if lazydockerIsInstalled; then
log::info "Lazydocker ya instalado"
else
installLazydocker
fi