MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1#245
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.
Overview (generate/resources/enterprise-analytics/README.md):
- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
README is copied byte-identically into every version directory and any
version's build can overwrite the Docker Hub description, so a pinned tag
cannot be correct everywhere. This matches couchbase-server, sync-gateway
and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
Version-gated entries are marked so the text stays accurate in the older
version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
and what the docs recommend mapping. Mounting only .../data loses the cluster
configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
scheme and the number of storage partitions) and which can be changed
afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
availability and the production ulimits.
- Add an Additional References section and link the license properly.
Screenshots (generate/screenshots):
- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
S3Mock backend and captures the seven images the overview embeds. There was
previously no automation for Enterprise Analytics; the published images were
manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.
The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.
Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

Copy link
Copy Markdown
MemberAuthor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026

Copy link
Copy Markdown
MemberAuthor

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@mblow@mhocouchbase