Skip to main content

Update the Artemis Runtime Image Reference

A Docker deployment package can start Artemis from a published Artemis image instead of a local checkout. By default, it runs the image that Artemis CI built from the commit the model was extracted from, the same image that remote deployment packages deploy. This page shows how to pin a different image by its digest instead. You need it when Docker packages should run a specific image, for example a release, whatever commit the model comes from. Remote deployment packages ignore this reference; they always deploy the image of the validation pin.

What the reference controls​

The local Docker package contains a self-contained stack, deployment/remote-image/artemis-feature-model-stack.yml, which runs the image ghcr.io/ls1intum/artemis. The reference decides which version of this image the stack names:

ReferenceRendered asEffect
latestghcr.io/ls1intum/artemis:sha-<commit>Runs the image of the model's source commit; pins no digest
sha256:<digest>ghcr.io/ls1intum/artemis@sha256:<digest>Runs exactly this image, whatever the model's commit

The reference lives in two places, one for each source mode of the application:

  • delivery/artemis-runtime-image.json for snapshots. The pipeline copies it into the snapshot's metadata.json, so a published image of this application always generates the same reference.
  • artemis.feature-model.runtime.image-digest in src/main/resources/application.yml for local development, which serves the classpath fixture.

Keep both values equal. To return to the image of the model's commit, set both back to latest.

Choose an image digest​

Look up the digest of the Artemis image you want, for example the image of a release tag:

docker buildx imagetools inspect ghcr.io/ls1intum/artemis:<tag>

Use the Digest line at the top of the output.

Edit the files​

Set the digest in delivery/artemis-runtime-image.json:

{
"image": "ghcr.io/ls1intum/artemis",
"digest": "sha256:<digest>"
}

Set the same value in src/main/resources/application.yml:

artemis:
feature-model:
runtime:
image-digest: sha256:<digest>

Verify​

  1. Run the pipeline and check that snapshot/metadata.json shows the new value as imageDigest:

    ./gradlew buildFeatureModelSnapshot -PartemisPath=../artemis-extraction
  2. Run ./gradlew test.

  3. Start the application, generate a package with the Docker runtime target on the review page of the Configurator, and check the image: line in deployment/remote-image/artemis-feature-model-stack.yml.

Open a pull request with both files. The next published image carries the new reference.

Search documentation