Files
omarchy_setup/modules/docker.sh
2025-11-08 15:33:58 -06:00

68 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# ===============================================================
# docker.sh - Configuración de Docker y Portainer
# ===============================================================
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/common.sh"
install_docker() {
log_step "Configuración de Docker y Portainer"
# Instalar Docker
log_info "Instalando Docker y Docker Compose..."
sudo pacman -S --noconfirm --needed \
docker docker-compose || {
log_error "Error al instalar Docker"
return 1
}
# Habilitar y iniciar Docker
log_info "Habilitando servicio de Docker..."
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo systemctl start docker.service
# Agregar usuario al grupo docker (si no está ya)
if ! groups "$USER" | grep -q docker; then
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
# Instalar Portainer
log_info "Configurando Portainer..."
# Verificar si Portainer ya está corriendo
if sudo docker ps -a --format '{{.Names}}' | grep -q "^portainer$"; then
log_info "Portainer ya existe. Reiniciando contenedor..."
sudo docker stop portainer 2>/dev/null || true
sudo docker rm portainer 2>/dev/null || true
fi
# Crear volumen y contenedor de Portainer
sudo docker volume create portainer_data 2>/dev/null || true
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 instalado y ejecutándose"
log_info "Accede a Portainer en: https://localhost:9443"
else
log_error "Error al instalar Portainer"
return 1
fi
log_success "Docker y Portainer configurados correctamente"
return 0
}
# Ejecutar si se llama directamente
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
install_docker "$@"
fi