Вернулась команда iptv exec, исправлена rebuild
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,5 +1,7 @@
|
||||
/.idea/
|
||||
/.vscode/
|
||||
/docker/keydb/data/*
|
||||
/log/**/*
|
||||
/iptvc/
|
||||
/web/
|
||||
/docs/
|
||||
|
||||
38
iptv
38
iptv
@@ -338,6 +338,7 @@ docker.build_base_images() {
|
||||
# done
|
||||
subtitle "Построение образов"
|
||||
docker.compose build
|
||||
[ ! -d web/cache/views ] && mkdir -p web/cache/views
|
||||
|
||||
success "Базовые образы построены"
|
||||
}
|
||||
@@ -432,7 +433,7 @@ find_services_compose() {
|
||||
|
||||
[ "$*" ] && for svc in "$@"; do
|
||||
grep_match "$svc" "^--?.*" && continue
|
||||
svc="$(find_service_compose "$svc")"
|
||||
svc="$(find_service_compose "${svc/iptv-/}")"
|
||||
services="$services $svc"
|
||||
done
|
||||
|
||||
@@ -494,12 +495,11 @@ up() {
|
||||
process_help_arg
|
||||
subtitle "Создание и запуск контейнеров"
|
||||
|
||||
argl profiles 0 profiles
|
||||
|
||||
local services=''
|
||||
[ "$*" ] && services="$(find_services_compose "$@")"
|
||||
|
||||
COMPOSE_PROFILES="$profiles" docker.compose up "$services" --build --detach --remove-orphans && \
|
||||
[ ! -d web/cache/views ] && mkdir -p web/cache/views
|
||||
docker.compose up "$services" --build --detach --remove-orphans && \
|
||||
success 'Среда запущена успешно'
|
||||
}
|
||||
|
||||
@@ -522,13 +522,10 @@ down() {
|
||||
process_help_arg
|
||||
subtitle "Остановка и удаление контейнеров"
|
||||
|
||||
argl profiles 0 profiles
|
||||
[[ -z "$profiles" ]] && profiles="full"
|
||||
|
||||
local services=''
|
||||
[ "$*" ] && services="$(find_services_compose "$@")"
|
||||
|
||||
COMPOSE_PROFILES="$profiles" docker.compose down "$services" --remove-orphans && \
|
||||
docker.compose down "$services" --remove-orphans && \
|
||||
success 'Среда остановлена успешно'
|
||||
}
|
||||
|
||||
@@ -554,7 +551,7 @@ rebuild() {
|
||||
is_full=$(arg full 1)
|
||||
[ "$is_full" = 0 ] && is_full=$(argl full 1)
|
||||
|
||||
[ -n "$*" ] && down "$@"
|
||||
[ -n "$*" ] && down "$@" || down
|
||||
[ "$is_full" = 1 ] && docker.build_base_images
|
||||
|
||||
up "$@"
|
||||
@@ -579,6 +576,27 @@ purge() {
|
||||
success 'Образы удалены успешно'
|
||||
}
|
||||
|
||||
# Выполняет команду в контейнере
|
||||
exec() {
|
||||
process_help_arg
|
||||
as_root=0
|
||||
svc="$1"
|
||||
regex_match "$svc" "--?r(oot)?" && { as_root=1; shift; svc="$1"; }
|
||||
|
||||
svc_correct="iptv-$(find_service_compose "$svc")"
|
||||
command=("${@:2}")
|
||||
regex_match "${command[0]}" "--?r(oot)?" && { as_root=1; unset "command[0]"; }
|
||||
|
||||
[[ -z "${command[*]}" ]] && die "не указана команда для выполнения в контейнере"
|
||||
|
||||
#TODO многострочные команды прокидываются корректно, но выполняется только первая строка?
|
||||
if [[ "$as_root" == 1 ]]; then
|
||||
docker.exec "$svc_correct" "${command[*]}"
|
||||
else
|
||||
docker.exec_www "$svc_correct" "${command[*]}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Выводит логи сервиса
|
||||
logs() {
|
||||
process_help_arg
|
||||
@@ -602,7 +620,6 @@ stats() {
|
||||
docker.compose stats "$@"
|
||||
}
|
||||
|
||||
|
||||
########################################################
|
||||
# Команды справки
|
||||
########################################################
|
||||
@@ -827,6 +844,7 @@ case "$COMMAND" in
|
||||
stop ) stop "$@" ;;
|
||||
r|rebuild ) rebuild "$@" ;;
|
||||
restart ) restart "$@" ;;
|
||||
exec ) exec "$@" ;;
|
||||
purge ) purge ;;
|
||||
logs ) logs "$@" ;;
|
||||
stats ) stats "$@" ;;
|
||||
|
||||
Reference in New Issue
Block a user