alpine docker 快速命令设置

alpine

cat >> ~/.bashrc << 'EOF'

alias ll='ls -l'

# Docker Compose 快捷命令
alias docker-compose='docker compose'
alias down='docker-compose down'
alias up='docker-compose up -d'
alias start='docker-compose restart'
alias stop='docker-compose stop'
alias reload='docker exec nginx nginx -s reload'

# 智能日志函数
log_func() {
    # 如果没有参数,默认查看最后 10 行并持续追踪
    if [ -z "$1" ]; then
        docker-compose logs -f --tail=10
    # 如果参数是 0,则不限定行数(查看全部日志并持续追踪)
    elif [ "$1" -eq 0 ] 2>/dev/null; then
        docker-compose logs -f
    # 如果参数是大于 0 的数字,则 tail 指定行数
    else
        docker-compose logs -f --tail="$1"
    fi
}

# 智能透入容器运行命令
exec_func() {
    # 提取当前目录 yml 里的第一个服务名
    local svc=$(docker compose config --services 2>/dev/null | head -n 1)
    
    if [ -z "$svc" ]; then
        echo "❌ 当前目录没有找到有效的 docker-compose 服务"
        return 1
    fi
    
    # 如果没带参数,默认执行 sh;如果带了参数,执行你输入的参数
    if [ $# -eq 0 ]; then
        echo "🚀 正在进入服务 [$svc] 的默认 Shell..."
        docker compose exec "$svc" sh
    else
        echo "🚀 正在服务 [$svc] 中执行: $@"
        docker compose exec "$svc" "$@"
    fi
}

# 绑定别名
alias log='log_func'
alias run='exec_func'
EOF

source ~/.profile