-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Update Couchbase Server CE+EE to 7.6.0 #16433
Conversation
This comment has been minimized.
This comment has been minimized.
In Docker Official Images, we try hard to avoid multi-stage builds in almost every instance. Even though we maintain the gcc image, I'm not sure I'd recommend using it to build binaries compatible with a specific libc of a distribution; it'd be better to just use the gcc package from the distribution. So, we would rather that it be just a regular non-multistage build (i.e., I am mildly concerned about using a custom fork of |
To your last point, IMHO it's a non-goal for a container image to provide tools for general use. This container image is intended to host Couchbase Server, and it contains the necessary tools for that. Users should not generally be running their own programs inside the container at all, let alone depending on the specific behaviour of the 'init' program in use. As for the use of the gcc image, I think I understand your concern. I believe I can modify it to be a single-stage build, although it'll be difficult to ensure that it doesn't end up with significant additional "cruft" in that runit build layer since we'll need to remove all of gcc and anything it brought in. It would be far easier and safer to make it a multi-stage build and just ensure we use the same FROM line for both stages, rather than using the separate "gcc" image. What's the reasoning behind avoid multi-stage builds in general? All that said, this is the Dockerfile we've internally tested with Server 7.6.0, which is now released, and it's the Dockerfile that was used to create our "unofficial" couchbase/server:7.6.0 image. Making either of those changes will take at least a few days to implement and validate, and we're already nearly 48 hours past our 7.6.0 release date. Would it be acceptable to commit this version for 7.6.0, with the understanding that we'll correct the issues for 7.6.1? I also agree that we should check out a specific SHA of our runit fork; I'll make that change in the follow-up Dockerfile as well. |
@ceejatec that is addressed in the FAQ @yosifkit pointed you to:
|
@whalelines @yosifkit Example #2 of the "likely acceptable" use cases under the FAQ entry seems to exactly match our scenario. |
This comment has been minimized.
This comment has been minimized.
d3a6ba3
to
d042637
Compare
@yosifkit @whalelines I've pushed an update which includes the changes you suggested; please re-review. |
Diff for d042637:diff --git a/_bashbrew-cat b/_bashbrew-cat
index a6b197e..5b8bf46 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -2,29 +2,39 @@ Maintainers: Couchbase Docker Team <docker@couchbase.com> (@cb-robot)
GitRepo: https://github.com/couchbase/docker
Tags: 7.0.5, enterprise-7.0.5
-GitCommit: ca816b6ffa5c36007bd4b3386ec24df081a00ea0
+GitCommit: 8205e18d139813ac3f72f6dfef9ee9ffbc382e0f
Directory: enterprise/couchbase-server/7.0.5
Tags: 7.1.6, enterprise-7.1.6
Architectures: amd64, arm64v8
-GitCommit: 3b28b68159ef2e9007a1493c17e768fbb4837358
+GitCommit: 8205e18d139813ac3f72f6dfef9ee9ffbc382e0f
Directory: enterprise/couchbase-server/7.1.6
-Tags: 7.2.4, enterprise-7.2.4, enterprise, latest
+Tags: 7.2.4, enterprise-7.2.4
Architectures: amd64, arm64v8
-GitCommit: 24bae6aab6520dc97c362b56150db9658d041873
+GitCommit: 8205e18d139813ac3f72f6dfef9ee9ffbc382e0f
Directory: enterprise/couchbase-server/7.2.4
+Tags: 7.6.0, enterprise-7.6.0, enterprise, latest
+Architectures: amd64, arm64v8
+GitCommit: 203e62f36ce055be75955e073d0000249bf2c040
+Directory: enterprise/couchbase-server/7.6.0
+
Tags: community-7.0.2
-GitCommit: aec4494ab5280caf567997d72714f57572a6315b
+GitCommit: 8205e18d139813ac3f72f6dfef9ee9ffbc382e0f
Directory: community/couchbase-server/7.0.2
Tags: community-7.1.1
Architectures: amd64, arm64v8
-GitCommit: bfbb82c084ca3ada6252afbbcb3ca94bb65f1e58
+GitCommit: 8205e18d139813ac3f72f6dfef9ee9ffbc382e0f
Directory: community/couchbase-server/7.1.1
-Tags: community-7.2.4, community
+Tags: community-7.2.4
Architectures: amd64, arm64v8
-GitCommit: 9fc1cf481a8fe8e78d7539cee3a25cdbaa7b5e1e
+GitCommit: 8205e18d139813ac3f72f6dfef9ee9ffbc382e0f
Directory: community/couchbase-server/7.2.4
+
+Tags: community-7.6.0, community
+Architectures: amd64, arm64v8
+GitCommit: 7148bc241bcdcf8961c34f8adf76ebfb2860ed83
+Directory: community/couchbase-server/7.6.0
diff --git a/_bashbrew-list b/_bashbrew-list
index 7a0e9cf..f0e09a7 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,12 +1,15 @@
couchbase:7.0.5
couchbase:7.1.6
couchbase:7.2.4
+couchbase:7.6.0
couchbase:community
couchbase:community-7.0.2
couchbase:community-7.1.1
couchbase:community-7.2.4
+couchbase:community-7.6.0
couchbase:enterprise
couchbase:enterprise-7.0.5
couchbase:enterprise-7.1.6
couchbase:enterprise-7.2.4
+couchbase:enterprise-7.6.0
couchbase:latest
diff --git a/couchbase_community/Dockerfile b/couchbase_community-7.2.4/Dockerfile
similarity index 100%
copy from couchbase_community/Dockerfile
copy to couchbase_community-7.2.4/Dockerfile
diff --git a/couchbase_community-7.0.2/scripts/dummy.sh b/couchbase_community-7.2.4/scripts/dummy.sh
similarity index 100%
copy from couchbase_community-7.0.2/scripts/dummy.sh
copy to couchbase_community-7.2.4/scripts/dummy.sh
diff --git a/couchbase_community-7.1.1/scripts/entrypoint.sh b/couchbase_community-7.2.4/scripts/entrypoint.sh
similarity index 100%
copy from couchbase_community-7.1.1/scripts/entrypoint.sh
copy to couchbase_community-7.2.4/scripts/entrypoint.sh
diff --git a/couchbase_community-7.1.1/scripts/run b/couchbase_community-7.2.4/scripts/run
similarity index 100%
copy from couchbase_community-7.1.1/scripts/run
copy to couchbase_community-7.2.4/scripts/run
diff --git a/couchbase_community/Dockerfile b/couchbase_community/Dockerfile
index 6d0407f..020c9d2 100644
--- a/couchbase_community/Dockerfile
+++ b/couchbase_community/Dockerfile
@@ -18,11 +18,25 @@ ARG CLEANUP_COMMAND="rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*"
RUN set -x \
&& ${UPDATE_COMMAND} \
&& apt-get install -y -q wget tzdata \
- lsof lshw sysstat net-tools numactl bzip2 runit \
+ lsof lshw sysstat net-tools numactl bzip2 \
&& ${CLEANUP_COMMAND}
-ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/7.2.4
-ARG CB_PACKAGE=couchbase-server-community_7.2.4-linux_@@ARCH@@.deb
+# Add runit
+RUN set -x \
+ && apt-get update \
+ && apt-get install -y gcc git make \
+ && cd /usr/src \
+ && git clone https://github.com/couchbasedeps/runit \
+ && cd runit \
+ && git checkout edb631449d89d5b452a5992c6ffaa1e384fea697 \
+ && ./package/compile \
+ && cp ./command/* /sbin/ \
+ && apt-get purge -y --autoremove gcc git make \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/* /usr/src/runit
+
+ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/7.6.0
+ARG CB_PACKAGE=couchbase-server-community_7.6.0-linux_@@ARCH@@.deb
ARG CB_SKIP_CHECKSUM=false
ENV PATH=$PATH:/opt/couchbase/bin:/opt/couchbase/bin/tools:/opt/couchbase/bin/install
@@ -36,10 +50,10 @@ RUN set -x \
&& dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch}" in \
'arm64') \
- CB_SHA256=58d7299088933bb866af1faa917236abf226ef2c0cdbfaf789de124984f7a018 \
+ CB_SHA256=9fee2723a019157fa6b696d5bfc011440ae96347430087f67c67a73afc1a2518 \
;; \
'amd64') \
- CB_SHA256=94ffff0e3f7d0b4dc5c227815ca76c3300d39cae491085f01ff8dbfa5bd98054 \
+ CB_SHA256=b6b86779b16bc5c83e86220f40c8e230cf9650f0a7deb7e190997a93d9a50316 \
;; \
esac \
&& CB_PACKAGE=$(echo ${CB_PACKAGE} | sed -e "s/@@ARCH@@/${dpkgArch}/") \
@@ -54,13 +68,13 @@ RUN set -x \
# Update VARIANT.txt to indicate we're running in our Docker image
RUN sed -i -e '1 s/$/\/docker/' /opt/couchbase/VARIANT.txt
-# Add runit script for couchbase-server
+# Add runit service script for couchbase-server
COPY scripts/run /etc/service/couchbase-server/run
RUN set -x \
- && mkdir -p /etc/runit/runsvdir/default/couchbase-server/supervise \
+ && mkdir -p /etc/service/couchbase-server/supervise \
&& chown -R couchbase:couchbase \
/etc/service \
- /etc/runit/runsvdir/default/couchbase-server/supervise
+ /etc/service/couchbase-server/supervise
# Add dummy script for commands invoked by cbcollect_info that
# make no sense in a Docker container
diff --git a/couchbase_community/scripts/entrypoint.sh b/couchbase_community/scripts/entrypoint.sh
index 73049d6..76f7ca9 100755
--- a/couchbase_community/scripts/entrypoint.sh
+++ b/couchbase_community/scripts/entrypoint.sh
@@ -53,7 +53,7 @@ overridePort "ssl_proxy_upstream_port"
fi
echo "Starting Couchbase Server -- Web UI available at http://<ip>:$restPortValue"
echo "and logs available in /opt/couchbase/var/lib/couchbase/logs"
- exec runsvdir -P /etc/service 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
+ exec runsvdir -P /etc/service
}
exec "$@"
diff --git a/couchbase_latest/Dockerfile b/couchbase_enterprise-7.2.4/Dockerfile
similarity index 100%
copy from couchbase_latest/Dockerfile
copy to couchbase_enterprise-7.2.4/Dockerfile
diff --git a/couchbase_community-7.0.2/scripts/dummy.sh b/couchbase_enterprise-7.2.4/scripts/dummy.sh
similarity index 100%
copy from couchbase_community-7.0.2/scripts/dummy.sh
copy to couchbase_enterprise-7.2.4/scripts/dummy.sh
diff --git a/couchbase_community-7.1.1/scripts/entrypoint.sh b/couchbase_enterprise-7.2.4/scripts/entrypoint.sh
similarity index 100%
copy from couchbase_community-7.1.1/scripts/entrypoint.sh
copy to couchbase_enterprise-7.2.4/scripts/entrypoint.sh
diff --git a/couchbase_community-7.1.1/scripts/run b/couchbase_enterprise-7.2.4/scripts/run
similarity index 100%
copy from couchbase_community-7.1.1/scripts/run
copy to couchbase_enterprise-7.2.4/scripts/run
diff --git a/couchbase_latest/Dockerfile b/couchbase_latest/Dockerfile
index 2f3c25d..bb2b10e 100644
--- a/couchbase_latest/Dockerfile
+++ b/couchbase_latest/Dockerfile
@@ -18,11 +18,25 @@ ARG CLEANUP_COMMAND="rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*"
RUN set -x \
&& ${UPDATE_COMMAND} \
&& apt-get install -y -q wget tzdata \
- lsof lshw sysstat net-tools numactl bzip2 runit \
+ lsof lshw sysstat net-tools numactl bzip2 \
&& ${CLEANUP_COMMAND}
-ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/7.2.4
-ARG CB_PACKAGE=couchbase-server-enterprise_7.2.4-linux_@@ARCH@@.deb
+# Add runit
+RUN set -x \
+ && apt-get update \
+ && apt-get install -y gcc git make \
+ && cd /usr/src \
+ && git clone https://github.com/couchbasedeps/runit \
+ && cd runit \
+ && git checkout edb631449d89d5b452a5992c6ffaa1e384fea697 \
+ && ./package/compile \
+ && cp ./command/* /sbin/ \
+ && apt-get purge -y --autoremove gcc git make \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/* /usr/src/runit
+
+ARG CB_RELEASE_URL=https://packages.couchbase.com/releases/7.6.0
+ARG CB_PACKAGE=couchbase-server-enterprise_7.6.0-linux_@@ARCH@@.deb
ARG CB_SKIP_CHECKSUM=false
ENV PATH=$PATH:/opt/couchbase/bin:/opt/couchbase/bin/tools:/opt/couchbase/bin/install
@@ -36,10 +50,10 @@ RUN set -x \
&& dpkgArch="$(dpkg --print-architecture)" \
&& case "${dpkgArch}" in \
'arm64') \
- CB_SHA256=c675d9e2a355cca833c9c12f85585e92a4d1cd95858d79e958b507f9ba1a4349 \
+ CB_SHA256=1512430a602c67d53886502d758bf95b25b9faab066d08292a8eb496e9c08492 \
;; \
'amd64') \
- CB_SHA256=0f5edf6c011df25e172ae54c6bbe5f83be6a3c24e4e23b25e77d5079262c30ca \
+ CB_SHA256=fe94419fff0c1b9176292b44ab8715fd0e8e48872e76330cc6ec6f3fa07b3966 \
;; \
esac \
&& CB_PACKAGE=$(echo ${CB_PACKAGE} | sed -e "s/@@ARCH@@/${dpkgArch}/") \
@@ -54,13 +68,13 @@ RUN set -x \
# Update VARIANT.txt to indicate we're running in our Docker image
RUN sed -i -e '1 s/$/\/docker/' /opt/couchbase/VARIANT.txt
-# Add runit script for couchbase-server
+# Add runit service script for couchbase-server
COPY scripts/run /etc/service/couchbase-server/run
RUN set -x \
- && mkdir -p /etc/runit/runsvdir/default/couchbase-server/supervise \
+ && mkdir -p /etc/service/couchbase-server/supervise \
&& chown -R couchbase:couchbase \
/etc/service \
- /etc/runit/runsvdir/default/couchbase-server/supervise
+ /etc/service/couchbase-server/supervise
# Add dummy script for commands invoked by cbcollect_info that
# make no sense in a Docker container
diff --git a/couchbase_latest/scripts/entrypoint.sh b/couchbase_latest/scripts/entrypoint.sh
index 73049d6..76f7ca9 100755
--- a/couchbase_latest/scripts/entrypoint.sh
+++ b/couchbase_latest/scripts/entrypoint.sh
@@ -53,7 +53,7 @@ overridePort "ssl_proxy_upstream_port"
fi
echo "Starting Couchbase Server -- Web UI available at http://<ip>:$restPortValue"
echo "and logs available in /opt/couchbase/var/lib/couchbase/logs"
- exec runsvdir -P /etc/service 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
+ exec runsvdir -P /etc/service
}
exec "$@" Relevant Maintainers:
|
Adding new Couchbase Server release.