You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Replace the version-specific app image with a generic release/master foundation #66
Implement the next focused increment of #47: remove the version-specific .docker/app/Dockerfile.35 architecture and make the existing app Dockerfile capable of building both release images and a development image that follows Nextcloud Server master.
This issue is about the image foundation only. It must not define the final publication/tagging workflow from #62.
Architecture
Use one generic .docker/app/Dockerfile.
The image must support two explicit source modes:
release: keep the Nextcloud payload supplied by the selected official Nextcloud base image;
daily: replace the Nextcloud payload with a verified upstream daily archive, such as latest-master.tar.bz2.
The base image must remain configurable independently from the upstream server payload so the development channel is not tied to a Nextcloud major.
The existing Compose environment remains the deployment definition. It may map its existing NEXTCLOUD_VERSION setting to the generic base-image input, but this issue must not introduce another Compose stack.
Development source
For daily mode:
require an explicit upstream daily URL;
fetch the corresponding upstream SHA-512 file;
verify the archive before extracting it;
derive the archive filename from the URL rather than hard-coding a major/version;
do not assert an expected future Nextcloud major;
prepare /usr/src/nextcloud in the same shape expected by the official image entrypoint.
The development channel follows Nextcloud Server master, not “the next major”.
Shared runtime
Release and daily modes must share the same LibreCode runtime additions and PHP configuration.
Do not add LibreSign-specific tooling.
Pin external build helpers where practical instead of downloading mutable latest assets.
Validation
Before this foundation can be used for publication:
Goal
Implement the next focused increment of #47: remove the version-specific
.docker/app/Dockerfile.35architecture and make the existing app Dockerfile capable of building both release images and a development image that follows Nextcloud Servermaster.This issue is about the image foundation only. It must not define the final publication/tagging workflow from #62.
Architecture
Use one generic
.docker/app/Dockerfile.The image must support two explicit source modes:
release: keep the Nextcloud payload supplied by the selected official Nextcloud base image;daily: replace the Nextcloud payload with a verified upstream daily archive, such aslatest-master.tar.bz2.The base image must remain configurable independently from the upstream server payload so the development channel is not tied to a Nextcloud major.
The existing Compose environment remains the deployment definition. It may map its existing
NEXTCLOUD_VERSIONsetting to the generic base-image input, but this issue must not introduce another Compose stack.Development source
For
dailymode:/usr/src/nextcloudin the same shape expected by the official image entrypoint.The development channel follows Nextcloud Server
master, not “the next major”.Shared runtime
Release and daily modes must share the same LibreCode runtime additions and PHP configuration.
Do not add LibreSign-specific tooling.
Pin external build helpers where practical instead of downloading mutable
latestassets.Validation
Before this foundation can be used for publication:
latest-master.tar.bz2must build from the same Dockerfile;CI validation may use a dedicated development-image workflow, but it must not publish development tags in this issue.
Remove obsolete architecture
Remove:
.docker/app/Dockerfile.35;Do not preserve the historical
:35publication path; #52 found no active consumer requiring that alias.Out of scope
Do not implement in this issue:
:master-fpmpublication;Acceptance criteria
Relationship
Blocks the reconstruction of #62.
Parent epic: #47.