]> git.armaanb.net Git - gen-shell.git/commitdiff
nice multi-stage dockerfile
authorArmaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me>
Fri, 30 Oct 2020 00:31:37 +0000 (20:31 -0400)
committerArmaan Bhojwani <3fb650a9-b47e-4604-a282-1dd91953b2ee@anonaddy.me>
Fri, 30 Oct 2020 00:31:37 +0000 (20:31 -0400)
Dockerfile
README.md

index cd9b71f399fd64a9332cbfcf15137b4a5f9a454e..e771d9e71d3fa3e48469b0aaee9ac0143cb7840a 100644 (file)
@@ -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
index d48c1564e07e2b190b12cafda40ace1795c060df..db4eee26722cc1743a1c1f2eaa7429b39740ddc8 100644 (file)
--- 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=<command to run> armaanb/gen-shell:latest
+```