#!/usr/bin/env bash ######################################################## # Docker wrappers ######################################################## # Вызывает корректную команду docker compose docker.compose() { require docker argl profiles 0 profiles args=${*/--profiles=[a-zA-Z_,0-9]*/} if $(docker compose &>/dev/null); then local cmd="docker compose $args" elif installed_pkg "docker-compose"; then local cmd="docker-compose $args" warn warn "docker-compose v1 устарел и не поддерживается, его поведение непредсказуемо." warn "Обнови docker согласно документации: https://docs.docker.com/engine/install/" warn else error "Должен быть установлен docker-compose-plugin!" die "Установи docker согласно документации: https://docs.docker.com/engine/install/" 2 fi if [[ "$profiles" ]]; then export COMPOSE_PROFILES=$profiles debug "Выполнено: export COMPOSE_PROFILES=$profiles" fi debug "Команда: $cmd" $cmd } # Выводит информацию о контейнере docker.inspect() { cmd="docker inspect $*" debug "Команда: $cmd" $cmd 2>/dev/null } # Выполняет команду в контейнере от имени root docker.exec() { cmd="docker exec -u root -it $*" debug "Команда: $cmd" $cmd }