FROM alpine@sha256:14358309a308569c32bdc37e2e0e9694be33a9d99e68afb0f5ff33cc1f695dce AS bundle ARG REVISION ARG SOURCE ARG APP_IMAGE ARG ROUTE_DATA_IMAGE WORKDIR /release COPY deploy/compose.production.yml /release/deploy/compose.production.yml COPY deploy/nginx /release/deploy/nginx COPY deploy/scripts /release/deploy/scripts COPY deploy/systemd /release/deploy/systemd COPY database /release/database RUN set -eu; \ case "$REVISION" in \ *[!0-9a-f]*|'') exit 1 ;; \ esac; \ test "${#REVISION}" -eq 40; \ app_digest="${APP_IMAGE##*@sha256:}"; \ route_digest="${ROUTE_DATA_IMAGE##*@sha256:}"; \ test "$app_digest" != "$APP_IMAGE"; \ test "$route_digest" != "$ROUTE_DATA_IMAGE"; \ case "$app_digest" in \ *[!0-9a-f]*|'') exit 1 ;; \ esac; \ case "$route_digest" in \ *[!0-9a-f]*|'') exit 1 ;; \ esac; \ test "${#app_digest}" -eq 64; \ test "${#route_digest}" -eq 64; \ printf '%s\n' \ "format_version=1" \ "revision=$REVISION" \ "source=$SOURCE" \ "app_image=$APP_IMAGE" \ "route_data_image=$ROUTE_DATA_IMAGE" \ > release.env; \ { \ sha256sum release.env; \ find deploy database -type f -print | LC_ALL=C sort | xargs sha256sum; \ } > SHA256SUMS FROM scratch ARG REVISION ARG SOURCE LABEL org.opencontainers.image.title="Watermaps production release bundle" \ org.opencontainers.image.description="Versioned deployment files, exact image digests and database migrations for Watermaps" \ org.opencontainers.image.revision="${REVISION}" \ org.opencontainers.image.source="${SOURCE}" COPY --from=bundle /release /release CMD ["/release/deploy/scripts/deploy.sh"]