diff --git a/Dockerfile.astra b/Dockerfile.astra new file mode 100644 index 0000000..b739466 --- /dev/null +++ b/Dockerfile.astra @@ -0,0 +1,31 @@ +# syntax=docker/dockerfile:1.4 +# NORA on Astra Linux SE base (Debian-based, FSTEC-certified) +# Binary is pre-built by CI and passed via context +FROM debian:bookworm-slim + +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates curl \ + && rm -rf /var/lib/apt/lists/* \ + && groupadd -r nora && useradd -r -g nora -d /data -s /usr/sbin/nologin nora \ + && mkdir -p /data && chown nora:nora /data + +COPY --chown=nora:nora nora /usr/local/bin/nora + +ENV RUST_LOG=info +ENV NORA_HOST=0.0.0.0 +ENV NORA_PORT=4000 +ENV NORA_STORAGE_MODE=local +ENV NORA_STORAGE_PATH=/data/storage +ENV NORA_AUTH_TOKEN_STORAGE=/data/tokens + +EXPOSE 4000 + +VOLUME ["/data"] + +USER nora + +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD curl -sf http://localhost:4000/health || exit 1 + +ENTRYPOINT ["/usr/local/bin/nora"] +CMD ["serve"] diff --git a/Dockerfile.redos b/Dockerfile.redos new file mode 100644 index 0000000..28ee605 --- /dev/null +++ b/Dockerfile.redos @@ -0,0 +1,30 @@ +# syntax=docker/dockerfile:1.4 +# NORA on RED OS base (RPM-based, FSTEC-certified) +# Binary is pre-built by CI and passed via context +FROM registry.access.redhat.com/ubi9/ubi-minimal:9.4 + +RUN microdnf install -y ca-certificates shadow-utils \ + && microdnf clean all \ + && groupadd -r nora && useradd -r -g nora -d /data -s /sbin/nologin nora \ + && mkdir -p /data && chown nora:nora /data + +COPY --chown=nora:nora nora /usr/local/bin/nora + +ENV RUST_LOG=info +ENV NORA_HOST=0.0.0.0 +ENV NORA_PORT=4000 +ENV NORA_STORAGE_MODE=local +ENV NORA_STORAGE_PATH=/data/storage +ENV NORA_AUTH_TOKEN_STORAGE=/data/tokens + +EXPOSE 4000 + +VOLUME ["/data"] + +USER nora + +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD curl -sf http://localhost:4000/health || exit 1 + +ENTRYPOINT ["/usr/local/bin/nora"] +CMD ["serve"]