2025-01-17 19:07:28 +08:00
|
|
|
|
#!/usr/bin/env bash
|
2025-01-16 13:39:16 +08:00
|
|
|
|
|
|
|
|
|
########################################################
|
|
|
|
|
# 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
|
|
|
|
|
}
|