Browse Source

docker-ce: add uci support for dockerd

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
lilik-openwrt-22.03
Florian Eckert 4 years ago
parent
commit
b9b565e068
3 changed files with 61 additions and 1 deletions
  1. +7
    -0
      utils/docker-ce/Makefile
  2. +47
    -1
      utils/docker-ce/files/dockerd.init
  3. +7
    -0
      utils/docker-ce/files/etc/config/dockerd

+ 7
- 0
utils/docker-ce/Makefile View File

@ -49,6 +49,10 @@ define Package/docker-ce
MENU:=1 MENU:=1
endef endef
define Package/docker-ce/conffiles
/etc/config/dockerd
endef
define Package/docker-ce/description define Package/docker-ce/description
Docker Engine is used by millions enables containerized applications Docker Engine is used by millions enables containerized applications
to run anywhere consistently on any infrastructure. to run anywhere consistently on any infrastructure.
@ -123,6 +127,9 @@ define Package/docker-ce/install
$(INSTALL_DIR) $(1)/etc/docker $(INSTALL_DIR) $(1)/etc/docker
$(INSTALL_CONF) ./files/daemon.json $(1)/etc/docker/ $(INSTALL_CONF) ./files/daemon.json $(1)/etc/docker/
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/etc/config/dockerd $(1)/etc/config/dockerd
# Must be after systcl 11-br-netfilter.conf from kmod-br-netfilter # Must be after systcl 11-br-netfilter.conf from kmod-br-netfilter
$(INSTALL_DIR) $(1)/etc/sysctl.d $(INSTALL_DIR) $(1)/etc/sysctl.d
$(INSTALL_DATA) ./files/etc/sysctl.d/sysctl-br-netfilter-ip.conf \ $(INSTALL_DATA) ./files/etc/sysctl.d/sysctl-br-netfilter-ip.conf \


+ 47
- 1
utils/docker-ce/files/dockerd.init View File

@ -3,12 +3,58 @@
USE_PROCD=1 USE_PROCD=1
START=25 START=25
DOCKERD_CONF="/tmp/dockerd/daemon.json"
json_add_array_string() {
json_add_string "" "$1"
}
process_config() {
local alt_config_file data_root log_level
rm -f "$DOCKERD_CONF"
[ -f /etc/config/dockerd ] || {
# Use the daemon default configuration
DOCKERD_CONF=""
return 0
}
config_load 'dockerd'
config_get alt_config_file globals alt_config_file
[ -n "$alt_config_file" ] && [ -f "$alt_config_file" ] && {
ln -s "$alt_config_file" "$DOCKERD_CONF"
return 0
}
config_get data_root globals data_root "/opt/docker/"
config_get log_level globals log_level "warn"
. /usr/share/libubox/jshn.sh
json_init
json_add_string "data-root" "$data_root"
json_add_string "log-level" "$log_level"
json_add_array "registry-mirrors"
config_list_foreach globals registry_mirror json_add_array_string
json_close_array
mkdir -p /tmp/dockerd
json_dump > "$DOCKERD_CONF"
}
start_service() { start_service() {
local nofile=$(cat /proc/sys/fs/nr_open) local nofile=$(cat /proc/sys/fs/nr_open)
process_config
procd_open_instance procd_open_instance
procd_set_param stderr 1 procd_set_param stderr 1
procd_set_param command /usr/bin/dockerd
if [ -z "$DOCKERD_CONF" ]; then
procd_set_param command /usr/bin/dockerd
else
procd_set_param command /usr/bin/dockerd --config-file="$DOCKERD_CONF"
fi
procd_set_param limits nofile="${nofile} ${nofile}" procd_set_param limits nofile="${nofile} ${nofile}"
procd_close_instance procd_close_instance
} }

+ 7
- 0
utils/docker-ce/files/etc/config/dockerd View File

@ -0,0 +1,7 @@
config globals 'globals'
# option alt_config_file "/etc/docker/daemon.json"
option data_root "/opt/docker/"
option log_level "warn"
# list registry_mirror "https://<my-docker-mirror-host>"
# list registry_mirror "https://hub.docker.com"

Loading…
Cancel
Save