From a6949ed0662ecb555111a6439d9cfdf20f050352 Mon Sep 17 00:00:00 2001
From: lilly
Date: Sat, 18 Jul 2026 21:10:32 +0200
Subject: [PATCH] ship ssh-cli in docker container
---
.gitignore | 1 +
Containerfile | 15 +++++++++++++--
oci/entrypoint.sh | 8 ++++++++
ssh-cli/test_id_ed25519 | 7 +++++++
ssh-cli/test_id_ed25519.pub | 1 +
5 files changed, 30 insertions(+), 2 deletions(-)
create mode 100755 oci/entrypoint.sh
create mode 100644 ssh-cli/test_id_ed25519
create mode 100644 ssh-cli/test_id_ed25519.pub
diff --git a/.gitignore b/.gitignore
index 7b869c5..984e24a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
**/__pycache__
**/authorized_keys
api/dist
+**/target
diff --git a/Containerfile b/Containerfile
index 2c73422..0cc80f3 100644
--- a/Containerfile
+++ b/Containerfile
@@ -1,3 +1,10 @@
+FROM docker.io/rust:alpine3.22 AS build-ssh-cli
+WORKDIR /usr/local/src/dooris/ssh-cli/
+ADD --link ./ssh-cli/ /usr/local/src/dooris/ssh-cli/
+RUN cargo build --release
+
+
+
FROM docker.io/alpine:3.22 AS build-frontend
ENV PNPM_HOME=/usr/local/share/dooris/pnpm/
WORKDIR /usr/local/src/dooris/
@@ -6,7 +13,7 @@ RUN apk add --no-cache pnpm
ADD --link app/package.json app/pnpm-lock.yaml app/
RUN pnpm --dir=app/ install --frozen-lockfile --package-import-method=copy
-ADD --link . /usr/local/src/dooris/
+ADD --link ./app/ /usr/local/src/dooris/app/
RUN pnpm --dir=app/ run build
@@ -45,9 +52,13 @@ RUN uv venv $VIRTUAL_ENV &&\
FROM deps AS final
ADD --chown=dooris:dooris --link . /usr/local/src/dooris/
COPY --chown=dooris:dooris --from=build-frontend --link /usr/local/src/dooris/app/dist/ $DOORIS_SERVE_STATIC
+COPY --chown=dooris:dooris --from=build-ssh-cli --link /usr/local/src/dooris/ssh-cli/target/release/ssh-cli /usr/local/bin/ssh-cli
+COPY oci/entrypoint.sh /usr/local/bin/entrypoint.sh
RUN --mount=type=cache,uid=$APP_UID,gid=$APP_GID,target=$UV_CACHE_DIR \
uv sync --active --frozen
-ENTRYPOINT [ "uv", "run", "--active", "dooris-api" ]
+ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]
+CMD [ "uv", "run", "--active", "dooris-api" ]
EXPOSE 8000/tcp
+VOLUME /srv/state/
diff --git a/oci/entrypoint.sh b/oci/entrypoint.sh
new file mode 100755
index 0000000..b598107
--- /dev/null
+++ b/oci/entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+echo "Copying ssh-cli into state directory"
+cp -v /usr/local/bin/ssh-cli /srv/state/ssh-cli
+
+echo "Running user script"
+exec $@
+
diff --git a/ssh-cli/test_id_ed25519 b/ssh-cli/test_id_ed25519
new file mode 100644
index 0000000..7fbba02
--- /dev/null
+++ b/ssh-cli/test_id_ed25519
@@ -0,0 +1,7 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
+QyNTUxOQAAACDTjbowlWL4JrOcqQrlpWg9MBwejsfUvEEnTjkFekOsmwAAAIhz+nzqc/p8
+6gAAAAtzc2gtZWQyNTUxOQAAACDTjbowlWL4JrOcqQrlpWg9MBwejsfUvEEnTjkFekOsmw
+AAAEDHkXZZNymkxkR3QMacM0R8MzCWg0+JPkL5GsFdP6Jzs9ONujCVYvgms5ypCuWlaD0w
+HB6Ox9S8QSdOOQV6Q6ybAAAABHRlc3QB
+-----END OPENSSH PRIVATE KEY-----
diff --git a/ssh-cli/test_id_ed25519.pub b/ssh-cli/test_id_ed25519.pub
new file mode 100644
index 0000000..db1ae93
--- /dev/null
+++ b/ssh-cli/test_id_ed25519.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINONujCVYvgms5ypCuWlaD0wHB6Ox9S8QSdOOQV6Q6yb test