From e9203b1b6f7e4c49f29df7f877b2e638e86811c9 Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Sat, 9 May 2026 15:37:17 +0800 Subject: [PATCH 1/7] typos --- docker_devbox/dev.Dockerfile | 2 +- docker_devbox/hub.Dockerfile | 4 ++-- docker_devbox/work/script-devbox-jupyter.sh | 4 ++-- docker_openclaw/work/start-openclaw.sh | 2 +- tool.sh | 12 ++---------- 5 files changed, 8 insertions(+), 16 deletions(-) diff --git a/docker_devbox/dev.Dockerfile b/docker_devbox/dev.Dockerfile index dc22b18..45f2dc5 100644 --- a/docker_devbox/dev.Dockerfile +++ b/docker_devbox/dev.Dockerfile @@ -35,7 +35,7 @@ RUN set -eux && source /opt/utils/script-utils.sh \ && if [ ${ARG_KEEP_NODEJS} = "false" ] ; then \ echo "Removing Node/NPM..." && rm -rf /usr/bin/node /usr/bin/npm /usr/bin/npx /opt/node ; \ else \ - echo "Keep NodeJS as ARG_KEEP_NODEJS defiend as: ${ARG_KEEP_NODEJS}" ; \ + echo "Keep NodeJS as ARG_KEEP_NODEJS defined as: ${ARG_KEEP_NODEJS}" ; \ fi \ ## ----------------------------- If installing R IDEs: R_rstudio and R_rshiny && source /opt/utils/script-devbox-rstudio.sh \ diff --git a/docker_devbox/hub.Dockerfile b/docker_devbox/hub.Dockerfile index e052373..1cf0326 100644 --- a/docker_devbox/hub.Dockerfile +++ b/docker_devbox/hub.Dockerfile @@ -18,14 +18,14 @@ RUN set -eux \ ## Setup JupyterHub && source /opt/utils/script-devbox-jupyter.sh \ && for profile in $(echo $ARG_PROFILE_JUPYTER | tr "," "\n") ; do ( setup_jupyter_${profile} ) ; done \ - ## If not keeping NodeJS, remove NoedJS to reduce image size, and install Traefik instead + ## If not keeping NodeJS, remove NodeJS to reduce image size, and install Traefik instead && if [ ${ARG_KEEP_NODEJS} = "false" ] ; then \ # Using Traefik to server as proxy, which is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. echo "Removing Node/NPM..." && rm -rf /usr/bin/node /usr/bin/npm /usr/bin/npx /opt/node ; \ echo "Installing Traefik to server as proxy:" && source /opt/utils/script-setup-net.sh && setup_traefik ; \ else \ # Using NodeJS to install configurable-http-proxy, which is a dependency of JupyterHub, and also used as the default proxy for JupyterHub. - echo "Keep NodeJS as ARG_KEEP_NODEJS defiend as: ${ARG_KEEP_NODEJS}" ; \ + echo "Keep NodeJS as ARG_KEEP_NODEJS defined as: ${ARG_KEEP_NODEJS}" ; \ curl -fsSL -o /usr/local/bin/start-configurable-http-proxy.sh https://raw.githubusercontent.com/jupyterhub/configurable-http-proxy/refs/heads/main/chp-docker-entrypoint ; \ which npm && ( npm install -g npm configurable-http-proxy ) || ( echo "NPM not found!" && return 255 ) ; \ # Notes: there is also an python version of configurable-http-proxy available but has limited compatibility. diff --git a/docker_devbox/work/script-devbox-jupyter.sh b/docker_devbox/work/script-devbox-jupyter.sh index c85064d..c82b129 100644 --- a/docker_devbox/work/script-devbox-jupyter.sh +++ b/docker_devbox/work/script-devbox-jupyter.sh @@ -6,7 +6,7 @@ setup_jupyter_base() { type jupyter || return -1 ; - # commnad `jupyterhub-singleuser` is provided by jupterhub and will be used by dockerspawner + # command `jupyterhub-singleuser` is provided by jupterhub and will be used by dockerspawner type jupyterhub-singleuser || return -1; echo "@ Version of Jupyter Server: $(jupyter server --version)" @@ -53,7 +53,7 @@ setup_jupyter_kernels() { && mv ~/.local/share/jupyter/kernels/gonb /opt/conda/share/jupyter/kernels/ ## checked @ 2024-0614 - # alternative approaches to install evxcr_jupyter: + # alternative approaches to install evcxr_jupyter: # && cargo install --locked evcxr_jupyter \ which rustc \ && echo "@ Install Jupyter Kernel for Rust: https://github.com/evcxr/evcxr/blob/main/evcxr_jupyter/README.md" \ diff --git a/docker_openclaw/work/start-openclaw.sh b/docker_openclaw/work/start-openclaw.sh index 432f5b3..8bf5035 100644 --- a/docker_openclaw/work/start-openclaw.sh +++ b/docker_openclaw/work/start-openclaw.sh @@ -26,5 +26,5 @@ bootstrap() { /opt/utils/script-localize.sh "${PROFILE_LOCALIZE:-default}" [ ! -f "$OPENCLAW_CONFIG" ] && bootstrap -echo "Starting openclaw with options: $@" +echo "Starting openclaw with options:" "$@" exec openclaw "$@" diff --git a/tool.sh b/tool.sh index 9fd281c..d44f109 100644 --- a/tool.sh +++ b/tool.sh @@ -37,14 +37,6 @@ build_image_no_tag() { echo "${IMG_PREFIX_DST}/${IMG}:${TAG}" } -build_image_common() { - echo "$@" ; - IMG=$1; TAG=$2; FILE=$3; shift 3; VER=$(date +%Y.%m%d.%H%M)${TAG_SUFFIX}; WORKDIR="$(dirname $FILE)"; - docker build --compress --force-rm=true -t "${IMG_PREFIX_DST}/${IMG}:${TAG}" -f "$FILE" --build-arg "BASE_NAMESPACE=${IMG_PREFIX_SRC}" "$@" "${WORKDIR}" - docker tag "${IMG_PREFIX_DST}/${IMG}:${TAG}" "${IMG_PREFIX_DST}/${IMG}:${VER}" - echo "${IMG_PREFIX_DST}/${IMG}:${TAG}" -} - alias_image() { IMG_1=$1; TAG_1=$2; IMG_2=$3; TAG_2=$4; shift 4; VER=$(date +%Y.%m%d.%H%M)${TAG_SUFFIX}; docker tag "${IMG_PREFIX_DST}/${IMG_1}:${TAG_1}" "${IMG_PREFIX_DST}/${IMG_2}:${TAG_2}" @@ -54,7 +46,7 @@ alias_image() { push_image() { KEYWORD="${1:-second}"; docker image prune --force && docker images | sort; - IMAGES=$(docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.CreatedSince}}" | grep "${KEYWORD}" | awk '{print $1 ":" $2}') ; + IMAGES=$(docker images --format "{{.Repository}}\t{{.Tag}}\t{{.CreatedSince}}" | grep "${KEYWORD}" | awk '{print $1 ":" $2}') ; echo "$DOCKER_REGISTRY_PASSWORD" | docker login "${REGISTRY_DST}" -u "$DOCKER_REGISTRY_USERNAME" --password-stdin ; for IMG in $(echo "${IMAGES}" | tr " " "\n") ; do @@ -70,7 +62,7 @@ clear_images() { IMGS_2=$(docker images | grep "${KEYWORD}" | awk '{print $3}') ; for IMG in $(echo "$IMGS_1 $IMGS_2" | tr " " "\n") ; do - docker rmi "${IMG}" || true; status=$?; echo "[${status}] image removed > ${IMG}"; + docker rmi "${IMG}" ; status=$?; echo "[${status}] image removed > ${IMG}"; done docker image prune --force && docker images ; } From a3fa47a1434524c8a87614519f27f35008671db6 Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Mon, 11 May 2026 22:17:45 +0800 Subject: [PATCH 2/7] fix: update GitHub stars badge style in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 677472e..8cfd953 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Recent Code Update](https://img.shields.io/github/last-commit/LabNow-ai/lab-dev.svg)](https://github.com/LabNow-ai/lab-dev/stargazers) [![Visit Images on DockerHub](https://img.shields.io/badge/DockerHub-Images-green)](https://hub.docker.com/u/labnow) -Please generously STAR★ our project or donate to us! [![GitHub Starts](https://img.shields.io/github/stars/LabNow-ai/lab-dev.svg?label=Stars&style=social)](https://github.com/LabNow-ai/lab-dev/stargazers) +Please generously STAR★ our project or donate to us! [![GitHub Starts](https://img.shields.io/github/stars/LabNow-ai/lab-dev.svg?label=Stars)](https://github.com/LabNow-ai/lab-dev/stargazers) [![Donate-PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/haobibo) [![Donate-AliPay](https://img.shields.io/badge/Donate-Alipay-blue.svg)](https://raw.githubusercontent.com/wiki/haobibo/resources/img/Donate-AliPay.png) [![Donate-WeChat](https://img.shields.io/badge/Donate-WeChat-green.svg)](https://raw.githubusercontent.com/wiki/haobibo/resources/img/Donate-WeChat.png) From 1fa73c34cdf9a1990a6c729b0d3ff510a47e9535 Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Tue, 12 May 2026 19:06:31 +0800 Subject: [PATCH 3/7] update scripts --- docker_nocobase/nocobase.Dockerfile | 2 +- docker_openclaw/openclaw.Dockerfile | 7 +++---- docker_openresty/openresty.Dockerfile | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docker_nocobase/nocobase.Dockerfile b/docker_nocobase/nocobase.Dockerfile index c615c31..60f497a 100644 --- a/docker_nocobase/nocobase.Dockerfile +++ b/docker_nocobase/nocobase.Dockerfile @@ -18,7 +18,7 @@ RUN set -eux \ ## ----------------------------- Install caddy ## && source /opt/utils/script-setup-net.sh && setup_caddy \ ## ----------------------------- Install dependencies and build - && source /opt/utils/script-setup.sh && setup_node_base 20 && source /etc/profile.d/path-*.sh \ + && source /opt/utils/script-setup-core.sh && setup_node_base 20 && source /etc/profile.d/path-*.sh \ && npm install -g yarn \ && source /opt/utils/script-setup-nocobase.sh \ && cd /opt && setup_nocobase_create_app \ diff --git a/docker_openclaw/openclaw.Dockerfile b/docker_openclaw/openclaw.Dockerfile index 9398a48..6decccf 100644 --- a/docker_openclaw/openclaw.Dockerfile +++ b/docker_openclaw/openclaw.Dockerfile @@ -16,13 +16,12 @@ ENV HOME=/opt/openclaw COPY work /opt/openclaw/ -RUN set -eux && source /opt/utils/script-setup.sh \ +RUN set -eux \ && chmod +x /opt/openclaw/*.sh && ln -sf /opt/openclaw/start-openclaw.sh /usr/local/bin/ \ - && mkdir -pv /opt/openclaw/data \ - && ln -sfn /opt/openclaw/data /opt/openclaw/.openclaw \ + && mkdir -pv /opt/openclaw/data && ln -sfn /opt/openclaw/data /opt/openclaw/.openclaw \ ## curl -fsSL https://openclaw.ai/install.sh | NO_PROMPT=1 bash -s -- --no-onboard --install-method npm \ && export SHARP_IGNORE_GLOBAL_LIBVIPS=1 \ - && setup_node_pnpm 10 \ + && source /opt/utils/script-setup-core.sh && setup_node_pnpm 10 \ && pnpm config set enable-pre-post-scripts true \ && pnpm config set package-import-method hardlink \ && pnpm config set node-linker isolated \ diff --git a/docker_openresty/openresty.Dockerfile b/docker_openresty/openresty.Dockerfile index e862ffc..719f2ca 100644 --- a/docker_openresty/openresty.Dockerfile +++ b/docker_openresty/openresty.Dockerfile @@ -17,7 +17,7 @@ RUN set -eux \ # ----------------------------- Install acme.sh && source /opt/utils/script-setup-acme.sh && setup_acme \ # ----------------------------- Install lua and lua-rocks - && source /opt/utils/script-setup.sh && setup_lua_base && setup_lua_rocks \ + && source /opt/utils/script-setup-core.sh && setup_lua_base && setup_lua_rocks \ # ----------------------------- Install openresty && useradd nginx -G www-data \ && mkdir -pv /var/cache/nginx /var/log/nginx \ From 8b168dbaab6453c34164a6522e9b47bbde748ab9 Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Tue, 12 May 2026 19:11:20 +0800 Subject: [PATCH 4/7] update caddy ver --- docker_devbox/dev.Dockerfile | 2 +- docker_searxng/searxng.Dockerfile | 2 +- docker_storebox/storebox.Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker_devbox/dev.Dockerfile b/docker_devbox/dev.Dockerfile index 45f2dc5..2d1fa1e 100644 --- a/docker_devbox/dev.Dockerfile +++ b/docker_devbox/dev.Dockerfile @@ -43,7 +43,7 @@ RUN set -eux && source /opt/utils/script-utils.sh \ ## ----------------------------- Install supervisord && source /opt/utils/script-setup-sys.sh && setup_supervisord \ ## ----------------------------- Install caddy - && source /opt/utils/script-setup-net.sh && setup_caddy \ + && source /opt/utils/script-setup-net.sh && setup_caddy 2.11.2 \ ## Clean up and display components version information... && list_installed_packages && install__clean diff --git a/docker_searxng/searxng.Dockerfile b/docker_searxng/searxng.Dockerfile index ec6c807..d4f0474 100644 --- a/docker_searxng/searxng.Dockerfile +++ b/docker_searxng/searxng.Dockerfile @@ -28,7 +28,7 @@ RUN set -eux \ ## ----------------------------- Install supervisord && source /opt/utils/script-setup-sys.sh && setup_supervisord \ ## ----------------------------- Install caddy - && source /opt/utils/script-setup-net.sh && setup_caddy \ + && source /opt/utils/script-setup-net.sh && setup_caddy 2.11.2 \ ## Clean up and display components version information... && fix_permission searxng /opt/searxng/ \ && chmod +x /opt/searxng/*.sh \ diff --git a/docker_storebox/storebox.Dockerfile b/docker_storebox/storebox.Dockerfile index 50db42b..982b35a 100644 --- a/docker_storebox/storebox.Dockerfile +++ b/docker_storebox/storebox.Dockerfile @@ -11,7 +11,7 @@ RUN set -eux \ ## ----------------------------- Install supervisord && source /opt/utils/script-setup-sys.sh && setup_supervisord \ ## ----------------------------- Install caddy - && source /opt/utils/script-setup-net.sh && setup_caddy \ + && source /opt/utils/script-setup-net.sh && setup_caddy 2.11.2 \ ## ----------------------------- Install alist && source /opt/utils/script-setup-alist.sh && setup_alist \ ## ----------------------------- Install rclone From b04508f8839676fc9c418d3a53752596181acd06 Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Tue, 12 May 2026 20:05:00 +0800 Subject: [PATCH 5/7] fix: handle case when no images match keyword in push_image function --- tool.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tool.sh b/tool.sh index d44f109..eb59a99 100644 --- a/tool.sh +++ b/tool.sh @@ -47,6 +47,7 @@ push_image() { KEYWORD="${1:-second}"; docker image prune --force && docker images | sort; IMAGES=$(docker images --format "{{.Repository}}\t{{.Tag}}\t{{.CreatedSince}}" | grep "${KEYWORD}" | awk '{print $1 ":" $2}') ; + [ -n "${IMAGES}" ] || { echo "!! No images matched keyword: ${KEYWORD}"; return 1; } echo "$DOCKER_REGISTRY_PASSWORD" | docker login "${REGISTRY_DST}" -u "$DOCKER_REGISTRY_USERNAME" --password-stdin ; for IMG in $(echo "${IMAGES}" | tr " " "\n") ; do @@ -57,7 +58,7 @@ push_image() { } clear_images() { - KEYWORD=${1:-'days ago\|weeks ago\|months ago\|years ago'}; # if no keyword is provided, clear all images build days ago + KEYWORD=${1:-'days ago\|weeks ago\|months ago\|years ago'}; # if no keyword is provided, clear all images built days ago IMGS_1=$(docker images | grep "${KEYWORD}" | awk '{print $1 ":" $2}') ; IMGS_2=$(docker images | grep "${KEYWORD}" | awk '{print $3}') ; From d9580b558d789d3e67dc233c3c29398e536efe68 Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Wed, 13 May 2026 15:20:18 +0800 Subject: [PATCH 6/7] update nocobase node ver --- docker_nocobase/nocobase.Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docker_nocobase/nocobase.Dockerfile b/docker_nocobase/nocobase.Dockerfile index 60f497a..c883549 100644 --- a/docker_nocobase/nocobase.Dockerfile +++ b/docker_nocobase/nocobase.Dockerfile @@ -13,12 +13,8 @@ RUN set -eux \ libfreetype6 fontconfig fonts-liberation fonts-noto-cjk \ ## ----------------------------- Install postgresql client && source /opt/utils/script-setup-db-clients.sh && setup_postgresql_client \ - ## ----------------------------- Install supervisord - ## && source /opt/utils/script-setup-sys.sh && setup_supervisord \ - ## ----------------------------- Install caddy - ## && source /opt/utils/script-setup-net.sh && setup_caddy \ ## ----------------------------- Install dependencies and build - && source /opt/utils/script-setup-core.sh && setup_node_base 20 && source /etc/profile.d/path-*.sh \ + && source /opt/utils/script-setup-core.sh && setup_node_base 22 \ && npm install -g yarn \ && source /opt/utils/script-setup-nocobase.sh \ && cd /opt && setup_nocobase_create_app \ From 49be7a626956deea67aa8c3b3b772f6630c38a3d Mon Sep 17 00:00:00 2001 From: Bibo Hao Date: Wed, 13 May 2026 15:42:35 +0800 Subject: [PATCH 7/7] fix vector install --- docker_logent/work/script-setup-logent.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker_logent/work/script-setup-logent.sh b/docker_logent/work/script-setup-logent.sh index c121cc5..3cb4029 100644 --- a/docker_logent/work/script-setup-logent.sh +++ b/docker_logent/work/script-setup-logent.sh @@ -4,7 +4,9 @@ setup_vector() { echo "Unsupported architecture for Vector: $(uname -m)" && return 1 ; } - VER_VECTOR=$(curl -sL -o /dev/null -w "%{url_effective}" https://github.com/vectordotdev/vector/releases/latest | grep -oP 'v\K[\d.]+') \ + VER_VECTOR=$(curl -fsSL https://github.com/vectordotdev/vector/releases.atom \ + | grep -oE 'https://github.com/vectordotdev/vector/releases/tag/[^"]+' \ + | grep -vE '/(vdev-v|nightly)' | head -n1 | sed 's#.*/tag/v##') \ && PKG_VECTOR="vector-${VER_VECTOR}-${ARCH}-unknown-linux-gnu.tar.gz" \ && URL_VECTOR="https://github.com/vectordotdev/vector/releases/download/v${VER_VECTOR}/${PKG_VECTOR}" \ && echo "Installing Vector v${VER_VECTOR} for arch ${ARCH} from: ${URL_VECTOR}" \