Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Couchbase Server 6.6.0 Community and 6.0.4 Enterprise. #8642

Merged
merged 1 commit into from
Sep 1, 2020

Conversation

ceejatec
Copy link
Contributor

@ceejatec ceejatec commented Sep 1, 2020

Also addressed docker-library/bashbrew#16 by converting to new
official-images library format.

Also addressed docker-library/bashbrew#16 by converting to new
official-images library format.
@github-actions
Copy link

github-actions bot commented Sep 1, 2020

Diff for f977494:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index b58e69a..a79cc4e 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1,12 +1,14 @@
-Maintainers: Couchbase Docker Team <docker@couchbase.com> (@couchbase)
-GitFetch: refs/heads/*
-
-Tags: community, community-6.5.1
+Maintainers: Couchbase Docker Team <docker@couchbase.com> (@cb-robot)
 GitRepo: https://github.com/couchbase/docker
-GitCommit: f17df7695bbd6efb756b90b683bd5f34d08b5708
-Directory: community/couchbase-server/6.5.1
+
+Tags: 6.0.4, enterprise-6.0.4
+GitCommit: 06229f9e31b76eff7596e76d5894898744fdcb52
+Directory: enterprise/couchbase-server/6.0.4
+
+Tags: community, community-6.6.0
+GitCommit: 78cbcaa2c90ce4c975299e7cbfdce146a7bab081
+Directory: community/couchbase-server/6.6.0
 
 Tags: latest, enterprise, 6.6.0, enterprise-6.6.0
-GitRepo: https://github.com/couchbase/docker
 GitCommit: f0ab8e5c7fc1091465097dc231cd5586f3eb7355
 Directory: enterprise/couchbase-server/6.6.0
diff --git a/_bashbrew-list b/_bashbrew-list
index 491deec..30f7445 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,6 +1,8 @@
+couchbase:6.0.4
 couchbase:6.6.0
 couchbase:community
-couchbase:community-6.5.1
+couchbase:community-6.6.0
 couchbase:enterprise
+couchbase:enterprise-6.0.4
 couchbase:enterprise-6.6.0
 couchbase:latest
diff --git a/couchbase_enterprise-6.6.0/Dockerfile b/couchbase_community-6.6.0/Dockerfile
similarity index 95%
copy from couchbase_enterprise-6.6.0/Dockerfile
copy to couchbase_community-6.6.0/Dockerfile
index 8fdd4a3..f4dbd8e 100644
--- a/couchbase_enterprise-6.6.0/Dockerfile
+++ b/couchbase_community-6.6.0/Dockerfile
@@ -29,8 +29,8 @@ RUN if [ ! -x /usr/sbin/runsvdir-start ]; then \
 
 ARG CB_VERSION=6.6.0
 ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/6.6.0
-ARG CB_PACKAGE=couchbase-server-enterprise_6.6.0-ubuntu16.04_amd64.deb
-ARG CB_SHA256=9f666b2e39c11b17a9cc74c00967d97efeab08e23b93e8bbdec582ce009c65c9
+ARG CB_PACKAGE=couchbase-server-community_6.6.0-ubuntu16.04_amd64.deb
+ARG CB_SHA256=19ba0f8ac60fd63226c45674c3d113a91a0e9168787b38df59fec5e98d11257e
 
 ENV PATH=$PATH:/opt/couchbase/bin:/opt/couchbase/bin/tools:/opt/couchbase/bin/install
 
diff --git a/couchbase_community-6.5.1/scripts/dummy.sh b/couchbase_community-6.6.0/scripts/dummy.sh
similarity index 100%
copy from couchbase_community-6.5.1/scripts/dummy.sh
copy to couchbase_community-6.6.0/scripts/dummy.sh
diff --git a/couchbase_community-6.5.1/scripts/entrypoint.sh b/couchbase_community-6.6.0/scripts/entrypoint.sh
similarity index 100%
copy from couchbase_community-6.5.1/scripts/entrypoint.sh
copy to couchbase_community-6.6.0/scripts/entrypoint.sh
diff --git a/couchbase_community-6.5.1/scripts/run b/couchbase_community-6.6.0/scripts/run
similarity index 100%
copy from couchbase_community-6.5.1/scripts/run
copy to couchbase_community-6.6.0/scripts/run
diff --git a/couchbase_community-6.5.1/Dockerfile b/couchbase_enterprise-6.0.4/Dockerfile
similarity index 89%
rename from couchbase_community-6.5.1/Dockerfile
rename to couchbase_enterprise-6.0.4/Dockerfile
index 58448a1..d75f606 100644
--- a/couchbase_community-6.5.1/Dockerfile
+++ b/couchbase_enterprise-6.0.4/Dockerfile
@@ -15,14 +15,14 @@ MAINTAINER Couchbase Docker Team <docker@couchbase.com>
 #  numactl: numactl
 RUN apt-get update && \
     apt-get install -yq runit wget chrpath tzdata \
-    lsof lshw sysstat net-tools numactl bzip2 && \
+    lsof lshw sysstat net-tools numactl python-httplib2 && \
     apt-get autoremove && apt-get clean && \
     rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
-ARG CB_VERSION=6.5.1
-ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/6.5.1
-ARG CB_PACKAGE=couchbase-server-community_6.5.1-ubuntu16.04_amd64.deb
-ARG CB_SHA256=baf65fb9cbcec87783d4e9c3ec067143a42cdeef13a884e1f917e8d2f14044b7
+ARG CB_VERSION=6.0.4
+ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/6.0.4
+ARG CB_PACKAGE=couchbase-server-enterprise_6.0.4-ubuntu16.04_amd64.deb
+ARG CB_SHA256=a9144e41fdb62dc872e09be617f69157f23568cc6e1d425e7adaf580aeba9adf
 
 ENV PATH=$PATH:/opt/couchbase/bin:/opt/couchbase/bin/tools:/opt/couchbase/bin/install
 
diff --git a/couchbase_community-6.5.1/scripts/dummy.sh b/couchbase_enterprise-6.0.4/scripts/dummy.sh
similarity index 100%
rename from couchbase_community-6.5.1/scripts/dummy.sh
rename to couchbase_enterprise-6.0.4/scripts/dummy.sh
diff --git a/couchbase_community-6.5.1/scripts/entrypoint.sh b/couchbase_enterprise-6.0.4/scripts/entrypoint.sh
similarity index 100%
rename from couchbase_community-6.5.1/scripts/entrypoint.sh
rename to couchbase_enterprise-6.0.4/scripts/entrypoint.sh
diff --git a/couchbase_community-6.5.1/scripts/run b/couchbase_enterprise-6.0.4/scripts/run
similarity index 100%
rename from couchbase_community-6.5.1/scripts/run
rename to couchbase_enterprise-6.0.4/scripts/run

@ceejatec
Copy link
Contributor Author

ceejatec commented Sep 1, 2020

We're getting the same build-time errors as the last one we proposed. @yosifkit Have you guys you figured out what is causing these "failed to contact bus" errors? It only seems to happen in these GitHub action-triggered builds.

@tianon
Copy link
Member

tianon commented Sep 1, 2020

We don't have any other images running into this exact failure, so we haven't done more to dig into what's causing it. It should be really trivial to reproduce if you set up a fork of https://github.com/couchbase/docker with GitHub Actions and just do a docker build. I'll copy @yosifkit's comment from last time (#8523 (comment)), since I think it's still relevant: "The Github Action just does a standard docker build so you could easily set it up on your own repo to try and debug. My guess is extra security settings like seccomp or apparmor on Github Actions."

What it looks like to me is that for some reason, the postinst script for the couchbase-server package is hitting systemctl (and failing, since there's no systemd running in the container), but why it works when we run it outside of GitHub Actions is still a mystery.

For reference, here's the contents of the postinst script I think is probably getting hung up, in case it helps:

$ docker run --rm couchbase:6.6.0 cat /var/lib/dpkg/info/couchbase-server.postinst
#!/bin/sh
# postinst script for couchbase-server
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
    if [ "`uname -m`" != "x86_64" ]
    then
      cat <<EOF
ERROR: The machine architecture does not match this build
of the software.  For example, installing a 32-bit build
on a 64-bit machine, or vice-versa.  Please uninstall and
install a build with a matching architecture.

EOF
      exit 1
    fi

    # Call reloc script even though we're not relocating because it does a
    # few necessary post-install steps, such as installing Miniconda
    `cd /opt/couchbase && ./bin/install/reloc.sh /opt/couchbase`

    chown -R couchbase:couchbase /opt/couchbase

    # Check for upgrade and perform if necessary
    export UPGRADE_MARKER=/tmp/couchbase-`date +%Y%m%d`-upgrade-from
    if [ -n "$INSTALL_UPGRADE_CONFIG_DIR" -o -e $UPGRADE_MARKER ]
    then
      if [ -z "$INSTALL_UPGRADE_CONFIG_DIR" ]
      then
        INSTALL_UPGRADE_CONFIG_DIR=/opt/couchbase/var/lib/couchbase/config
      fi
      echo Upgrading couchbase-server ...
      echo "  /opt/couchbase/bin/cbupgrade -c $INSTALL_UPGRADE_CONFIG_DIR -a yes $INSTALL_UPGRADE_EXTRA"
      if [ "$INSTALL_DONT_AUTO_UPGRADE" != "1" ]
      then
        /opt/couchbase/bin/cbupgrade -c $INSTALL_UPGRADE_CONFIG_DIR -a yes $INSTALL_UPGRADE_EXTRA 2>&1
      else
        echo Skipping cbupgrade due to INSTALL_DONT_AUTO_UPGRADE ...
      fi
    fi

    # Reload systemd and start server
    /opt/couchbase/bin/install/systemd-ctl daemon-reload
    if [ "$INSTALL_DONT_START_SERVER" != "1" ]
    then
      /opt/couchbase/bin/install/systemd-ctl start
    else
      echo Skipping server start due to INSTALL_DONT_START_SERVER ...
    fi

    cat <<EOF

You have successfully installed Couchbase Server.
Please browse to http://`hostname`:8091/ to configure your server.
Refer to http://docs.couchbase.com for additional resources.

Please note that you have to update your firewall configuration to
allow external connections to a number of network ports for full
operation. Refer to the documentation for the current list:
https://docs.couchbase.com/server/6.6/install/install-ports.html

By using this software you agree to the End User License Agreement.
See /opt/couchbase/LICENSE.txt.

EOF
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

# Automatically added by dh_systemd_enable
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask couchbase-server.service >/dev/null || true

# was-enabled defaults to true, so new installations run enable.
if deb-systemd-helper --quiet was-enabled couchbase-server.service; then
	# Enables the unit on first installation, creates new
	# symlinks on upgrades if the unit file has changed.
	deb-systemd-helper enable couchbase-server.service >/dev/null || true
else
	# Update the statefile to add new symlinks (if any), which need to be
	# cleaned up on purge. Also remove old symlinks.
	deb-systemd-helper update-state couchbase-server.service >/dev/null || true
fi
# End automatically added section
# Automatically added by dh_installinit
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
	if [ -x "/etc/init.d/couchbase-server" ]; then
		update-rc.d couchbase-server defaults >/dev/null
	fi
	if [ -x "/etc/init.d/couchbase-server" ] || [ -e "/etc/init/couchbase-server.conf" ]; then
		invoke-rc.d couchbase-server start || exit $?
	fi
fi
# End automatically added section


exit 0

(There are a few things in there that strike me as odd, such as the "Call reloc script ..." bit where the output of the script is enclosed in backticks and thus run as a command itself, if the script has any output.)

It might be worth trying to get a set -x added to that script for testing the build to see exactly where it fails. There's another line that's invoking /opt/couchbase/bin/install/systemd-ctl daemon-reload which is a very strong candidate for being related -- it still doesn't explain why it works locally but fails in GitHub Actions, but it's a starting point.

@tianon
Copy link
Member

tianon commented Sep 1, 2020

LGTM

Build test of #8642; f977494; amd64 (couchbase):

$ bashbrew build couchbase:latest
Using bashbrew/cache:d9d49a4752223e3af5bb57aa4947021484a0629ef7f7f4941c7fd6f9b8060ec4 (couchbase:latest)
Tagging couchbase:latest
Tagging couchbase:enterprise
Tagging couchbase:6.6.0
Tagging couchbase:enterprise-6.6.0

$ test/run.sh couchbase:latest
testing couchbase:latest
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build couchbase:community
Building bashbrew/cache:ef14953acfb1fffef0b60e44137cad052a7295ce7f6bee1cff17a2d0b30e9962 (couchbase:community)
Tagging couchbase:community
Tagging couchbase:community-6.6.0

$ test/run.sh couchbase:community
testing couchbase:community
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed


$ bashbrew build couchbase:6.0.4
Building bashbrew/cache:b6828636b262c403b038973a3095e4a6b3c7c32b61f84af43d5e62206a0046ec (couchbase:6.0.4)
Tagging couchbase:6.0.4
Tagging couchbase:enterprise-6.0.4

$ test/run.sh couchbase:6.0.4
testing couchbase:6.0.4
	'utc' [1/4]...passed
	'cve-2014--shellshock' [2/4]...passed
	'no-hard-coded-passwords' [3/4]...passed
	'override-cmd' [4/4]...passed

@tianon tianon merged commit bb5c3ad into docker-library:master Sep 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants