From e14f17f524b8f70e8b34343f2ec3f49f3b0b2be5 Mon Sep 17 00:00:00 2001 From: Armaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me> Date: Thu, 29 Oct 2020 20:31:37 -0400 Subject: [PATCH] nice multi-stage dockerfile --- Dockerfile | 16 ++++++++++++---- README.md | 9 +++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index cd9b71f..e771d9e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,12 @@ -FROM debian:buster-slim -RUN apt-get update && apt-get install -y libreadline7 wget -RUN wget https://build.bhojwani.org/job/gen-shell/lastSuccessfulBuild/artifact/build/src/gen-shell && chmod +x gen-shell -ENTRYPOINT ./gen-shell +FROM centos:8 AS builder +RUN dnf -y install cmake gcc gcc-c++ git readline-devel make +RUN git clone https://codeberg.org/armaan/gen-shell.git /app +WORKDIR /app +RUN cmake --configure . +RUN cmake --build . + +FROM centos:8 +RUN dnf -y install readline cpp +WORKDIR /app +COPY --from=builder /app/src/gen-shell . +ENTRYPOINT ./gen-shell $CMD diff --git a/README.md b/README.md index d48c156..db4eee2 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,11 @@ A simple way to turn any command into a shell with arrow key/history suppoert. T Just put the command that you want to repeat as the argument ## Installation +### Binaries Binaries can be downloaded [from here](https://build.bhojwani.org/job/gen-shell/lastSuccessfulBuild/artifact/build/src/gen-shell). Note that these binaries are compiled against libreadline7, so if your system only has libreadline8, you should symlink 8 to 7 with `sudo ln -s /usr/lib/x86_64-linux-gnu/libreadline.so.8.0 /usr/lib/x86_64-linux-gnu/libreadline.so.7`. This isn't a great solution, but it gets the job done. + +### From source If you would like to avoid this, you can build from source. Doing so requires: - CMake - g++ @@ -23,3 +26,9 @@ sudo cp src/gen-shell /usr/bin/ ``` Or if you don't have root access, you can subsitute the last line with `cp src/gen-shell ~/.local/bin` + +### Docker +You can also run gen-shell in docker. Simply use +```bash +docker run -it -e CMD= armaanb/gen-shell:latest +``` -- 2.39.2