Repository navigation
Publish release images so the quick start does not compile the stack #107
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestplannedActive backlog; exempt from stale botActive backlog; exempt from stale bot
Description
To install SITMUN today, a user clones this repository with its eight submodules (.gitmodules) and compiles front, backend, and proxy locally. mbtiles is also compiled when the opt-in mbtiles profile is on. That is a developer setup. An end user should download one Compose bundle and pull images from a tested release.
Order: after #108, whose build produces these images. #106 can ship before this, using a tag and a local build.
Current state
- https://github.com/orgs/sitmun/packages lists three packages, all from 14–15 January 2020: npm
frontend-core, npmfrontend-gui, and Mavenorg.sitmun.sitmun-backend-core. There is no container image forfront,backend,proxy, ormbtiles. RELEASE.mdprefers one coordinated version but does not publish images or list compatible module versions.
Why a pulled image does not run yet
These are the blockers to resolve before the images are useful outside a checkout:
frontfixes its deployment path at build time.front/DockerfilesubstitutesPUBLIC_BASE_PATHintoapiUrl/apiBaseURL, the viewer<base href>, the service-worker scope, webpackpublicPath,SITNA_BASE_URL, and--base-href. A single published image serves only the path it was built for. Decide: support/only, publish one image per path, or move these to runtime config.frontbakes in the build environment.ENVIRONMENT(development/production) is a build arg. Decide which one the release publishes.backendandfrontread files from the checkout.backendmounts./profiles/${SITMUN_CONFIG_DIR}as/usr/src/config, which holds the Liquibase changelog.frontmounts./front/configfor the nginx template. The release must either bake these files into the images or ship them in the bundle.- Secrets. Compose defaults
SITMUN_USER_SECRET,MIDDLEWARE_SECRET, andSITMUN_MBTILES_JOB_HANDLE_SECRETtodev-only-insecure-*values. The release bundle must make the user set them, or say plainly that it is a demo.
Tasks
- Decide on
PUBLIC_BASE_PATHandENVIRONMENTfor publishedfrontimages. - Make
backendandfrontstart without files mounted from the checkout, or include those files in the bundle. - On a
sitmun-application-stack/X.Y.Ztag, pushfront,backend,proxy, andmbtilesto GHCR (or Docker Hub) taggedX.Y.Z. Use the image built by Block merges that break the Docker Compose image build #108's workflow. - Attach a release Compose file, with an example
.env, that usesimage:and nobuild:. - Give every shipped module version
X.Y.Z(asRELEASE.mdprefers), or list compatible submodule versions in the release notes. - Replace the end-user quick start with "download the bundle, set the secrets,
docker compose up -d". The clone-and-build steps become the developer path.
Acceptance
- On a machine with only Docker, the release Compose bundle runs
docker compose up -dwithoutgitand without building an image. The admin and viewer open athttp://localhost:9000.
Out of scope: #18 (IIS artifacts without Docker) and #105 (one repository instead of eight submodules).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestplannedActive backlog; exempt from stale botActive backlog; exempt from stale bot
Activity
[-]Publish prebuilt images so quick start does not compile the stack[/-][+]Publish release images so the quick start does not compile the stack[/+]