From af97c5f8294fd28e9a6c3cc5d54259b06a8b1318 Mon Sep 17 00:00:00 2001 From: Lilith Ashley Nyx Arson Date: Thu, 7 Nov 2024 14:25:53 +0100 Subject: [PATCH] Add files --- .gitignore | 1 + Dockerfile | 21 +++++++++++++++++++++ README.md | 4 ++-- build.sh | 38 ++++++++++++++++++++++++++++++++++++++ dockerfiles/00-base | 3 +++ dockerfiles/01-server | 12 ++++++++++++ tini | Bin 0 -> 24064 bytes utils/http-server-rs | 1 + 8 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100755 build.sh create mode 100644 dockerfiles/00-base create mode 100644 dockerfiles/01-server create mode 100755 tini create mode 160000 utils/http-server-rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2f7896d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c107b8f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY BUILD.SH +# TO MODIFY DOCKERFILES, SEE THE DIRECTORY NAMED "dockerfiles"\n + +# dockerfiles/00-base +FROM debian AS base +RUN apt update +RUN --mount=type=cache,target=/var/cache apt install -y build-essential libssl-dev zlib1g-dev autoconf + +# dockerfiles/02-final +FROM busybox:glibc + +COPY tini /tini +COPY utils/http-server-rs/target/release/http-server /bin +COPY --from=base /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib + +RUN mkdir -p /srv/repo + +EXPOSE 8000 + +CMD ["http-server", "--chdir", "/srv/repo"] +ENTRYPOINT ["/tini", "--"] diff --git a/README.md b/README.md index 18fd1e4..66e124d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# mini-fdroid -smallest possible fdroid server container +# minhttpd +tiny http server, made to mimic* the usability of "python -m http.server" \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..4c2bb1d --- /dev/null +++ b/build.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -e + +echo "# THIS FILE IS AUTOMATICALLY GENERATED BY BUILD.SH" >Dockerfile +echo "# TO MODIFY DOCKERFILES, SEE THE DIRECTORY NAMED \"dockerfiles\"\n" >>Dockerfile + +for f in dockerfiles/*; do + echo -e "\n# $f" >>Dockerfile + cat $f >>Dockerfile +done + +if ! command -v cargo 2 >&1 >/dev/null; then + echo "[*] Rust is not installed" + exit 0 +fi + +for f in utils/*; do + echo "Building $(basename $f)..." + + pushd $f + cargo build -r + popd +done + +CMD="" +if command -v podman 2 >&1 >/dev/null; then + echo "[*] Using podman" + CMD="podman" +elif command -v docker 2 >&1 >/dev/null; then + echo "[*] Using docker" + CMD="docker" +else + echo "[!] No CMD parser installed." + exit 1 +fi + +$CMD build . -t arson.pw/minhttpd diff --git a/dockerfiles/00-base b/dockerfiles/00-base new file mode 100644 index 0000000..f3ec580 --- /dev/null +++ b/dockerfiles/00-base @@ -0,0 +1,3 @@ +FROM debian AS base +RUN apt update +RUN --mount=type=cache,target=/var/cache apt install -y build-essential libssl-dev zlib1g-dev autoconf diff --git a/dockerfiles/01-server b/dockerfiles/01-server new file mode 100644 index 0000000..a3128e0 --- /dev/null +++ b/dockerfiles/01-server @@ -0,0 +1,12 @@ +FROM busybox:glibc + +COPY tini /tini +COPY utils/http-server-rs/target/release/http-server /bin +COPY --from=base /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib + +RUN mkdir -p /srv/repo + +EXPOSE 8000 + +CMD ["http-server", "--chdir", "/srv/repo"] +ENTRYPOINT ["/tini", "--"] diff --git a/tini b/tini new file mode 100755 index 0000000000000000000000000000000000000000..86cb766c6b8af2564ac9201df913fe079acae3d1 GIT binary patch literal 24064 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