mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-09-10 18:34:18 +08:00
69 lines
2.0 KiB
Bash
69 lines
2.0 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=94
|
|
USE_PROCD=1
|
|
|
|
get_config() {
|
|
config_get_bool enabled "$1" enabled 0
|
|
config_get data_dir "$1" data_dir ""
|
|
config_get listen_mode "$1" listen_mode "auto"
|
|
config_get_bool external_port_enabled "$1" external_port_enabled 0
|
|
config_get socket_path "$1" socket_path "/var/run/dockermanager.sock"
|
|
config_get port "$1" port "8192"
|
|
config_get bind_addr "$1" bind_addr "0.0.0.0"
|
|
config_get base_path "$1" base_path "/apps/dockermanager/"
|
|
}
|
|
|
|
mkdir_p() {
|
|
[ -d "$1" ] || mkdir -p "$1"
|
|
}
|
|
|
|
start_service() {
|
|
config_load dockermanager
|
|
config_foreach get_config dockermanager
|
|
|
|
if [ "$enabled" != 1 ]; then
|
|
return 1
|
|
fi
|
|
if [ -z "$data_dir" ]; then
|
|
logger -t dockermanager "data_dir is empty; set option data_dir in /etc/config/dockermanager"
|
|
return 1
|
|
fi
|
|
|
|
mkdir_p "$data_dir" || return 1
|
|
mkdir_p "$data_dir/state" || return 1
|
|
mkdir_p "$data_dir/cache" || return 1
|
|
|
|
logger -t dockermanager "Starting Docker Manager service"
|
|
procd_open_instance docker-manager
|
|
if [ "$listen_mode" = "tcp" ] || [ "$external_port_enabled" = 1 ]; then
|
|
procd_set_param env \
|
|
DOCKER_MANAGER_LISTEN_MODE="tcp" \
|
|
DOCKER_MANAGER_ADDR="$bind_addr:$port" \
|
|
DOCKER_MANAGER_BASE_PATH="$base_path" \
|
|
DOCKER_MANAGER_DATA_DIR="$data_dir" \
|
|
DOCKER_MANAGER_STATIC_ROOT="/usr/share/dockermanager/www" \
|
|
DOCKER_MANAGER_PLATFORM="openwrt" \
|
|
DOCKER_MANAGER_AUTH_MODE="openwrt_luci"
|
|
else
|
|
procd_set_param env \
|
|
DOCKER_MANAGER_LISTEN_MODE="unix" \
|
|
DOCKER_MANAGER_SOCKET_PATH="$socket_path" \
|
|
DOCKER_MANAGER_BASE_PATH="$base_path" \
|
|
DOCKER_MANAGER_DATA_DIR="$data_dir" \
|
|
DOCKER_MANAGER_STATIC_ROOT="/usr/share/dockermanager/www" \
|
|
DOCKER_MANAGER_PLATFORM="openwrt" \
|
|
DOCKER_MANAGER_AUTH_MODE="openwrt_luci"
|
|
fi
|
|
procd_set_param command /usr/sbin/docker-manager
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_set_param respawn
|
|
procd_close_instance
|
|
logger -t dockermanager "Docker Manager service started"
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "dockermanager"
|
|
}
|