docker helpers
This commit is contained in:
48
helpers/docker.sh
Normal file
48
helpers/docker.sh
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user