49 lines
1.5 KiB
Bash
49 lines
1.5 KiB
Bash
#!/bin/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
|
||
}
|