mirror of
https://github.com/marcogll/omarchy_setup.git
synced 2026-01-13 13:25:16 +00:00
feat: improve keyring UX and icon manager flow
This commit introduces two main improvements to the user experience:
1. **Refactors the Icon Manager for Non-Interactive Installation:**
- The `icon_manager.sh` module can now be run in a non-interactive mode.
- The "Install All" process has been updated to use this non-interactive mode, which installs the default icon theme without pausing the script or requiring user input.
2. **Improves the GNOME Keyring Workflow:**
- The script no longer errors out if the GNOME Keyring agent is not immediately available after installation.
- Instead, a clear summary message is now displayed at the end of the "Install All" process, instructing the user to log out and back in, and then run the SSH key synchronization module separately. This provides a much smoother and more intuitive user experience.
This commit is contained in:
@@ -2,96 +2,70 @@
|
||||
# ===============================================================
|
||||
# docker.sh - Configuración de Docker y Portainer
|
||||
# ===============================================================
|
||||
#
|
||||
# Este módulo se encarga de la instalación y configuración de Docker
|
||||
# y, opcionalmente, de Portainer, una interfaz web para gestionar
|
||||
# contenedores.
|
||||
#
|
||||
# Funciones principales:
|
||||
# - Instala Docker y Docker Compose desde los repositorios oficiales.
|
||||
# - Habilita e inicia los servicios de Docker.
|
||||
# - Agrega el usuario actual al grupo `docker` para permitir la
|
||||
# ejecución de comandos de Docker sin `sudo`.
|
||||
# - Ofrece la opción de instalar Portainer.
|
||||
#
|
||||
# ===============================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "${SCRIPT_DIR}/common.sh"
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# install_docker()
|
||||
# ---------------------------------------------------------------
|
||||
# Orquesta la instalación y configuración de Docker y Portainer.
|
||||
# ---------------------------------------------------------------
|
||||
install_docker() {
|
||||
log_step "Configuración de Docker y Portainer"
|
||||
|
||||
# --- 1. Instalación de Docker ---
|
||||
# Instalar Docker
|
||||
log_info "Instalando Docker y Docker Compose..."
|
||||
if ! sudo pacman -S --noconfirm --needed docker docker-compose; then
|
||||
log_error "No se pudo instalar Docker. Abortando."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
docker docker-compose || {
|
||||
log_error "Error al instalar Docker"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# --- 2. Configuración del Servicio de Docker ---
|
||||
log_info "Habilitando e iniciando los servicios de Docker..."
|
||||
# Habilita los servicios para que se inicien automáticamente con el sistema.
|
||||
# Habilitar y iniciar Docker
|
||||
log_info "Habilitando servicio de Docker..."
|
||||
sudo systemctl enable docker.service
|
||||
sudo systemctl enable containerd.service
|
||||
# Inicia los servicios en la sesión actual.
|
||||
sudo systemctl start docker.service
|
||||
|
||||
# --- 3. Configuración de Permisos de Usuario ---
|
||||
# Agrega el usuario actual al grupo `docker` para evitar tener que usar `sudo`.
|
||||
# Agregar usuario al grupo docker (si no está ya)
|
||||
if ! groups "$USER" | grep -q docker; then
|
||||
log_info "Agregando al usuario '$USER' al grupo 'docker'..."
|
||||
if ! sudo usermod -aG docker "$USER"; then
|
||||
log_error "No se pudo agregar el usuario al grupo 'docker'."
|
||||
# No es un error fatal, así que solo se muestra una advertencia.
|
||||
else
|
||||
log_warning "Para que los cambios de grupo surtan efecto, debes cerrar sesión y volver a iniciarla."
|
||||
fi
|
||||
log_info "Agregando usuario al grupo docker..."
|
||||
sudo usermod -aG docker "$USER"
|
||||
log_warning "Necesitarás cerrar sesión y volver a iniciar para usar Docker sin sudo"
|
||||
fi
|
||||
|
||||
# --- 4. Instalación Opcional de Portainer ---
|
||||
echo ""
|
||||
read -p "¿Deseas instalar Portainer (interfaz web para Docker)? [S/n]: " confirm_portainer
|
||||
if [[ ! "${confirm_portainer}" =~ ^[Nn]$ ]]; then
|
||||
log_info "Instalando Portainer..."
|
||||
log_info "Configurando Portainer..."
|
||||
|
||||
# Comprueba si el contenedor de Portainer ya existe para evitar errores.
|
||||
# Verificar si Portainer ya está corriendo
|
||||
if sudo docker ps -a --format '{{.Names}}' | grep -q "^portainer$"; then
|
||||
log_info "El contenedor de Portainer ya existe. Se detendrá y eliminará para volver a crearlo."
|
||||
sudo docker stop portainer >/dev/null 2>&1 || true
|
||||
sudo docker rm portainer >/dev/null 2>&1 || true
|
||||
log_info "Portainer ya existe. Reiniciando contenedor..."
|
||||
sudo docker stop portainer 2>/dev/null || true
|
||||
sudo docker rm portainer 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Crea un volumen de Docker para persistir los datos de Portainer.
|
||||
sudo docker volume create portainer_data >/dev/null 2>&1 || true
|
||||
# Crear volumen y contenedor de Portainer
|
||||
sudo docker volume create portainer_data 2>/dev/null || true
|
||||
|
||||
# Ejecuta el contenedor de Portainer.
|
||||
if sudo docker run -d -p 8000:8000 -p 9443:9443 \
|
||||
--name portainer \
|
||||
--restart=always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v portainer_data:/data \
|
||||
portainer/portainer-ce:latest; then
|
||||
log_success "Portainer se ha instalado y está corriendo."
|
||||
log_info "Puedes acceder a la interfaz web en: https://localhost:9443"
|
||||
log_success "Portainer instalado y ejecutándose"
|
||||
log_info "Accede a Portainer en: https://localhost:9443"
|
||||
else
|
||||
log_error "No se pudo instalar Portainer."
|
||||
# No se devuelve un error aquí porque la instalación de Docker fue exitosa.
|
||||
log_error "Error al instalar Portainer"
|
||||
# No retornamos error, Docker ya está instalado.
|
||||
fi
|
||||
else
|
||||
log_info "Se omitió la instalación de Portainer."
|
||||
fi
|
||||
|
||||
log_success "La configuración de Docker ha finalizado."
|
||||
log_success "Configuración de Docker completada."
|
||||
return 0
|
||||
}
|
||||
|
||||
# Ejecutar si se llama directamente al script.
|
||||
# Ejecutar si se llama directamente
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
install_docker "$@"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user