Visitar URL original
Custom-distribution image (arcadedb-builder.sh) runs as system UID 100:101, volumes not interchangeable with the official images · Issue #10330 · ArcadeData/arcadedb · GitHub
Skip to content

Custom-distribution image (arcadedb-builder.sh) runs as system UID 100:101, volumes not interchangeable with the official images #10330

Closed

Description

@robfrank

Follow-up of #10319.

Gap

#10319 aligns the JVM image (package/src/main/docker/Dockerfile, now adduser -D -u 1000) and both native images (Dockerfile.native.scratch, Dockerfile.native.distroless) on UID/GID 1000:1000, so their volumes are interchangeable.

The Dockerfile that package/arcadedb-builder.sh generates for a custom distribution (heredoc in generate_dockerfile()) still creates a system user:

RUN addgroup -S ${ARCADEDB_USER} && adduser -S ${ARCADEDB_USER} -G ${ARCADEDB_USER}

On eclipse-temurin:25-jre-alpine that resolves to uid=100(arcadedb) gid=101(arcadedb) (verified with docker run --rm eclipse-temurin:25-jre-alpine sh -c 'addgroup -S arcadedb && adduser -S arcadedb -G arcadedb && id arcadedb'). A volume written by a custom-built image therefore cannot be opened by the official images (and vice versa) without a chown, and the security files are mode 600.

Why it was left out of #10319

Changing it changes the owner of existing custom-image deployments' volumes (one-time chown -R 1000:1000 needed, release note), and the issue's decision covered the JVM, amd64-native and arm64-native images only.

Proposed fix

addgroup -g 1000 -S ... / adduser -S -u 1000 ... (or drop -S and pin -u 1000 like the main Dockerfile), and extend PackagingManifestsTest.jvmImageRunsAsTheUidTheNativeImagesShare to cover the generated Dockerfile (jvmDockerfiles() already returns it).

Activity

  1. added this to the 26.11.1 milestone on Oct 18, 2026
  2. added
    dockerPull requests that update docker code
    packagingDistribution assembly, modular builder, Docker image
    on Oct 18, 2026
  3. self-assigned this
    on Oct 19, 2026
  4. added a commit that references this issue on Oct 19, 2026
  5. robfrank commented on Oct 19, 2026

    @robfrank
    CollaboratorAuthor

    Fixed in #10351. The Dockerfile that package/arcadedb-builder.sh generates for a custom distribution created an Alpine system user, which ends up as 100:101, while the official JVM and native images run as 1000:1000 since #10319. So a volume written by one image could not be opened by the other without a chown. The generated image now creates its user exactly like the official JVM image (1000:1000), and a packaging test checks both Dockerfiles so they cannot drift apart again.

    Upgrade note: existing custom-distribution deployments have volumes owned by 100:101. After upgrading, run chown -R 1000:1000 once on the databases, backups and log volumes. This is also documented in package/README-BUILDER.md ("Docker image user"). The official images are not affected.

    Still open: nothing, the fix is complete.


    ❤️ Thanks for helping make ArcadeDB better! ArcadeDB is free and open source, sustained by its community. If it's useful to you or your company, please consider becoming a sponsor to keep development going.

  6. removed
    in progressThe team is actively working on this issue
    on Oct 19, 2026
  7. added a commit that references this issue on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugdockerPull requests that update docker codepackagingDistribution assembly, modular builder, Docker imageseverity:minorCosmetic, documentation, edge case, or a workaround exists

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions