32
scripts/lib/docker.sh
Executable file
32
scripts/lib/docker.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
# shellcheck shell=bash
|
||||
# shellcheck source=common.sh
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
||||
|
||||
docker_cmd() {
|
||||
if docker info >/dev/null 2>&1; then
|
||||
DOCKER=(docker)
|
||||
elif sudo -n docker info >/dev/null 2>&1; then
|
||||
DOCKER=(sudo docker)
|
||||
else
|
||||
DOCKER=(sudo docker)
|
||||
fi
|
||||
}
|
||||
|
||||
require_container() {
|
||||
local name="${1:-$LM_CONTAINER}"
|
||||
docker_cmd
|
||||
if ! "${DOCKER[@]}" ps --format '{{.Names}}' | grep -qx "$name"; then
|
||||
echo "Container '$name' không chạy. Thử: ./scripts/lm.sh docker up" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
print_container_limits() {
|
||||
local name="${1:-$LM_CONTAINER}"
|
||||
local nano mem cpus ram_mb
|
||||
nano="$("${DOCKER[@]}" inspect -f '{{.HostConfig.NanoCpus}}' "$name")"
|
||||
mem="$("${DOCKER[@]}" inspect -f '{{.HostConfig.Memory}}' "$name")"
|
||||
cpus="$(awk "BEGIN { if ($nano > 0) printf \"%.2f\", $nano / 1000000000; else print \"unlimited\" }")"
|
||||
ram_mb=$((mem / 1048576))
|
||||
echo " CPUs quota = ${cpus} core(s), RAM max = ${ram_mb} MB"
|
||||
}
|
||||
Reference in New Issue
Block a user