diff options
Diffstat (limited to 'contrib/build-using-docker/README.md')
-rw-r--r-- | contrib/build-using-docker/README.md | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/build-using-docker/README.md b/contrib/build-using-docker/README.md new file mode 100644 index 0000000..971c2e6 --- /dev/null +++ b/contrib/build-using-docker/README.md @@ -0,0 +1,60 @@ + +Showcase how to build and install +================================= + +Sometimes happy developers (like me) have no choice but using horribly +restricted systems where setting up tools to run even something as simple as +configure/make/install becomes a nightmare. I found it to be easier to have a +Dockerfile to build on a totally unrelated machine (but where I have the needed +privileges) and then just copy-paste the built result over to where I need it. + + +## Setup variable to reduce annoying repetitions + +```sh +IMG=deflateandinflate-showcase:latest +``` + +## Make and install dockerimage + +```sh +curl -sSL https://github.com/hiddenalpha/DeflateAndInflate/raw/master/contrib/build-using-docker/Dockerfile | sudo docker build . -f - -t "${IMG:?}" +``` + +## Grab distribution archive + +Most probably we wanna get the distribution archive. We can copy it out the +dockerimage to our host using: + +```sh +sudo docker run --rm -i "${IMG:?}" sh -c 'true && cd dist && tar c *' | tar x +``` + + +## Play around + +Or if we wanna browse the image or play around with the built utility we could +launch a shell. Once in the shell, try `deflate --help` and/or `inflate --help`. + +```sh +sudo docker run --rm -ti "${IMG:?}" sh +``` + + +## Other targets + +The dockerfile is parameterized and should work for other systems too. For +example to compile for debian we could use command like below. May set *IMG* +differently if you need to keep multiple images. + +```sh +curl -sSL https://github.com/hiddenalpha/DeflateAndInflate/raw/master/contrib/build-using-docker/Dockerfile | sudo docker build . -f - -t "${IMG:?}" \ + --build-arg PARENT_IMAGE=debian:buster-20220622-slim \ + --build-arg PKGS_TO_ADD="curl gcc git make libc-dev ca-certificates tar zlib1g-dev" \ + --build-arg PKGS_TO_DEL="curl gcc git make libc-dev zlib1g-dev" \ + --build-arg PKGINIT="apt-get update" \ + --build-arg PKGADD="apt-get install -y --no-install-recommends" \ + --build-arg PKGDEL="apt-get purge -y" \ + --build-arg PKGCLEAN="apt-get clean" +``` + |