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