Repository navigation
feat(docker): volume mount readOnly, subpath and volume-nocopy support - #599
Open
madejackson wants to merge 1 commit into
Open
madejackson wants to merge 1 commit into
madejackson wants to merge 1 commit into
Conversation
|
We require contributors to sign our Contributor License Agreement. In order for us to review and merge your code, add yourself to the .clabot file as contributor, as a way of signing the CLA. |
madejackson
force-pushed
the
pr/volume-mounts-subpath
branch
from
September 5, 2026 14:07
c36d60e to
86cd894
Compare
8 tasks done
madejackson
force-pushed
the
pr/volume-mounts-subpath
branch
from
September 5, 2026 15:22
c5b8ee2 to
62d72df
Compare
madejackson
added a commit
to aseracorp/Cosmos-Server
that referenced
this pull request
Sep 8, 2026
…n-comments Both stacked PRs share mount/volume/export code and depend on the same dependency chain (azukaar#573 lowercase CosmosMount, azukaar#585 DurationStr). Resolve the additive conflicts: - mount.go: take azukaar#599's superset (SubPath/ReadOnly/NoCopy + helpers) - volumes.jsx / newServiceForm.jsx: azukaar#599's Subpath/Read-only/NoCopy columns and file-picker 'any' (for file subpaths) layered on azukaar#590's lowercase fields - api_blueprint.go: keep azukaar#590's omitempty tags (hide empty fields in the compose editor) + healthcheck nil-guard refactor; keep azukaar#599's ValidateMountConflicts + volume-subpath auto-create block - export.go: keep azukaar#590's FormatShmSize + healthcheck pointer alloc; take azukaar#599's HostConfig.Mounts/FromDockerMount volume export (subpath-preserving) - regenerate api-docs + go-sdk from merged code (CosmosMount fields, DurationStr healthcheck fields, mount readOnly/subpath/noCopy) Verified: go build ./... , go test ./src/..., vite client-build all pass.
madejackson
force-pushed
the
pr/volume-mounts-subpath
branch
from
September 9, 2026 19:31
dccc92e to
60240fb
Compare
madejackson
added a commit
to aseracorp/Cosmos-Server
that referenced
this pull request
Sep 9, 2026
…path (azukaar#599) Reconcile the clean azukaar#599 branch (built on upstream, minus generated files) with azukaar#590's stacked feature work. Shared files take the canonical union: azukaar#590's omitempty/shm_size/strslice + azukaar#599's subpath/nocopy. Verified: go build ./..., docker tests pass.
madejackson
force-pushed
the
pr/volume-mounts-subpath
branch
2 times, most recently
from
October 9, 2026 11:35
d84b92f to
7f288fc
Compare
Clean PR branch built directly on upstream/unstable (v0.24.0-unstable007, 4975324) containing ONLY the feature work and its required code dependencies — no regenerated api-docs/go-sdk churn. This deliberately EXCLUDES the generated files (api-docs/*, go-sdk/*): the embedded swaggerSpec blob in go-sdk/client.gen.go rewrites ~29k lines on any API change, and the healthcheck spec change here belongs to dependency PR azukaar#585. Upstream's pre-commit hook regenerates them on merge.
madejackson
force-pushed
the
pr/volume-mounts-subpath
branch
from
October 12, 2026 07:18
7f288fc to
1cea823
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add volume mount read-only, subpath, and volume-nocopy support
This PR adds docker-compose-style volume mount options to Cosmos, delivered as three stacked commits, each self-contained:
CosmosMount.ReadOnly(:ro/read_only/readOnly) mapped through create/export, and a case-insensitive unmarshal so mixed spellings such assubPath(capital P) are no longer silently dropped.CosmosMount.SubPath→VolumeOptions.Subpathround-tripped through create and export (export now readsHostConfig.Mounts, which preserves the subpath; the top-levelMounts/MountPointstruct has noSubPathfield and silently dropped it before).CreateServiceandEditContainer.ENOTDIRat container start. Plain nested binds and directory subpaths remain allowed.source:target[:subpath][:ro].VolumeOptions.NoCopysupport:CosmosMount.NoCopyround-tripped end to end, with a NoCopy checkbox in the Volumes table.open .../safe-mount...: not a directory). moby PR #52584 fixed this daemon-side in Docker Engine 29.5.0, so Cosmos only auto-setsNoCopyon engines older than 29.5.0 (users can still set it explicitly on any engine).Dependencies
This branch is based on
upstream:unstableand includes only the upstream PRsthat touch the same mount/volume code this feature builds on. This PR depends
on them being merged first:
fix/mounts: normalize volume field casing to lowercasewith backward compat (introduces the
CosmosMounttype and itsunmarshal/ToDockerMount helpers — the direct foundation this feature extends)
fix(docker): store healthcheck durations ascompose-style strings (defines
DurationStr, used by the sameapi_blueprint.go/export.gofiles this PR modifies, and required to build)Verification
go build ./...passesvite buildpasses (frontend)