From a9d0d65fa4ef43a63f0a28a7157de16e94d6fa40 Mon Sep 17 00:00:00 2001 From: tiennm99 Date: Sun, 5 Oct 2025 22:30:23 +0700 Subject: [PATCH] Refactor Couchbase 2.5 Docker setup and scripts Updated Dockerfile to add libssl0.9.8, split some RUN commands, and improved permissions handling. Modified entrypoint.sh to use 'set -ex' for better debugging and switched to 'runsvdir -P /etc/service' for process management. Cleaned up docker-compose.example.yml by commenting out unused options. Updated run script to unset HOME before execution for improved environment consistency. --- couchbase-2.5/Dockerfile | 14 +++++++++----- couchbase-2.5/docker-compose.example.yml | 6 +++--- couchbase-2.5/scripts/entrypoint.sh | 7 +++++-- couchbase-2.5/scripts/run | 2 ++ 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/couchbase-2.5/Dockerfile b/couchbase-2.5/Dockerfile index 5888bea..d65148a 100644 --- a/couchbase-2.5/Dockerfile +++ b/couchbase-2.5/Dockerfile @@ -19,7 +19,10 @@ RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|http://old-releases.ubuntu.com/u # numactl: numactl RUN apt-get update && \ apt-get install -yq runit wget python-httplib2 chrpath tzdata \ - lsof lshw sysstat net-tools numactl librtmp0 dos2unix && \ + lsof lshw sysstat net-tools numactl librtmp0 \ + libssl0.9.8 \ + dos2unix \ + && \ apt-get autoremove && apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* @@ -43,15 +46,15 @@ RUN export INSTALL_DONT_START_SERVER=1 && \ # Add runit script for couchbase-server COPY scripts/run /etc/service/couchbase-server/run RUN dos2unix /etc/service/couchbase-server/run && \ - chmod +x /etc/service/couchbase-server/run && \ - chown -R couchbase:couchbase /etc/service + chmod +x /etc/service/couchbase-server/run +RUN chown -R couchbase:couchbase /etc/service # Add dummy script for commands invoked by cbcollect_info that # make no sense in a Docker container COPY scripts/dummy.sh /usr/local/bin/ RUN dos2unix /usr/local/bin/dummy.sh && \ - chmod +x /usr/local/bin/dummy.sh && \ - ln -s dummy.sh /usr/local/bin/iptables-save && \ + chmod +x /usr/local/bin/dummy.sh +RUN ln -s dummy.sh /usr/local/bin/iptables-save && \ ln -s dummy.sh /usr/local/bin/lvdisplay && \ ln -s dummy.sh /usr/local/bin/vgdisplay && \ ln -s dummy.sh /usr/local/bin/pvdisplay @@ -65,6 +68,7 @@ RUN dos2unix /entrypoint.sh && \ chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["couchbase-server"] +# CMD ["runsvdir", "-P", "/etc/service"] # 8091: Couchbase Web console, REST/HTTP interface # 8092: Views, queries, XDCR diff --git a/couchbase-2.5/docker-compose.example.yml b/couchbase-2.5/docker-compose.example.yml index 5ba0f9d..5e443b0 100644 --- a/couchbase-2.5/docker-compose.example.yml +++ b/couchbase-2.5/docker-compose.example.yml @@ -1,14 +1,14 @@ services: couchbase: image: ghcr.io/tiennm99/docker-images/couchbase-2.5:latest + # image: couchbase-2.5:latest ports: - "8091:8091" - "8092:8092" - "11210:11210" - "11211:11211" - restart: unless-stopped - stdin_open: true - tty: true + # stdin_open: true + # tty: true volumes: - couchbase_data:/opt/couchbase/var diff --git a/couchbase-2.5/scripts/entrypoint.sh b/couchbase-2.5/scripts/entrypoint.sh index 25dea8d..25e51cb 100644 --- a/couchbase-2.5/scripts/entrypoint.sh +++ b/couchbase-2.5/scripts/entrypoint.sh @@ -1,10 +1,11 @@ #!/bin/bash -set -e +set -ex staticConfigFile=/opt/couchbase/etc/couchbase/static_config restPortValue=8091 # see https://developer.couchbase.com/documentation/server/current/install/install-ports.html +# https://docs.couchbase.com/couchbase-manual-2.5/cb-install/#network-ports function overridePort() { portName=$1 portNameUpper=$(echo $portName | awk '{print toupper($0)}') @@ -39,6 +40,7 @@ overridePort "ssl_proxy_downstream_port" overridePort "ssl_proxy_upstream_port" +# if [ "$1" == "couchbase-server" ] && [ ! -d "/etc/service" ]; then [[ "$1" == "couchbase-server" ]] && { if [ "$(whoami)" = "couchbase" ]; then @@ -53,7 +55,8 @@ overridePort "ssl_proxy_upstream_port" fi echo "Starting Couchbase Server -- Web UI available at http://:$restPortValue" echo "and logs available in /opt/couchbase/var/lib/couchbase/logs" - exec /usr/sbin/runsvdir-start + exec /usr/sbin/runsvdir -P /etc/service } +# fi exec "$@" diff --git a/couchbase-2.5/scripts/run b/couchbase-2.5/scripts/run index be2e6fe..a52e740 100644 --- a/couchbase-2.5/scripts/run +++ b/couchbase-2.5/scripts/run @@ -1,5 +1,7 @@ #!/bin/sh +unset HOME + exec 2>&1 # Create directories where couchbase stores its data