├── .gitlab-ci.yml ├── .gitlab-ci └── generate-jobs-file.sh ├── .travis.yml ├── LICENSE ├── README.md ├── bazel ├── Dockerfile └── README.md ├── build.env ├── build.sh ├── cupsd ├── Dockerfile ├── Dockerfile.stable ├── README.md └── cupsd.conf ├── debian-pkg ├── Dockerfile ├── README.md └── tags.env ├── gen-dockerfiles.sh ├── gen-light-dockerfile.sh ├── gnupg ├── Dockerfile ├── Dockerfile.light ├── README.md ├── gen-light.env ├── gpg.conf └── tags.env ├── gpg ├── hackmyresume ├── Dockerfile └── README.md ├── imagemagick ├── Dockerfile ├── Dockerfile.light ├── README.md └── gen-light.env ├── java-devel ├── Dockerfile └── README.md ├── jsonresume ├── Dockerfile └── README.md ├── kcachegrind ├── Dockerfile └── README.md ├── libreoffice ├── Dockerfile ├── Dockerfile.i18n └── README.md ├── nodejs ├── Dockerfile └── README.md ├── pandoc ├── Dockerfile └── README.md ├── sak ├── Dockerfile ├── README.md ├── gen-light.env └── ignored.Dockerfile.light ├── uglify ├── Dockerfile └── README.md └── uncss ├── Dockerfile └── README.md /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | --- 2 | generate-jobs-file: 3 | stage: build 4 | script: .gitlab-ci/generate-jobs-file.sh > generated-jobs.yml 5 | artifacts: 6 | paths: 7 | - generated-jobs.yml 8 | only: 9 | - master 10 | 11 | build-and-publish-docker-images: 12 | stage: deploy 13 | trigger: 14 | include: 15 | - artifact: generated-jobs.yml 16 | job: generate-jobs-file 17 | strategy: depend 18 | -------------------------------------------------------------------------------- /.gitlab-ci/generate-jobs-file.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | 5 | . build.env 6 | buildargs="--build-arg BASE_USER=$BASE_USER" 7 | buildargs+=" --build-arg MAINTAINER=$MAINTAINER" 8 | user=${BUILD_USER:-olbat} 9 | 10 | function generate_job() { 11 | local dir=$1 12 | local dockerfile=$2 13 | local image=$3 14 | local args=$4 15 | 16 | # also generate a unique daily tag name for the image 17 | if [[ "$image" =~ :latest$ ]] 18 | then 19 | args="--destination ${image//latest/$(date +%Y-%m-%d)} $args" 20 | else 21 | args="--destination $image-$(date +%Y-%m-%d) $args" 22 | fi 23 | 24 | cat <- 28 | /kaniko/executor 29 | --context "$dir" 30 | --dockerfile "$dockerfile" 31 | --destination "$image" 32 | $args 33 | 34 | EOF 35 | } 36 | 37 | 38 | cat <. 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | {project} Copyright (C) {year} {fullname} 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dockerfiles [![Build Status](https://gitlab.com/olbat/dockerfiles/badges/master/pipeline.svg)](https://gitlab.com/olbat/dockerfiles/-/pipelines) 2 | 3 | A collection of Dockerfiles. 4 | 5 | Fresh images are generated by the [CI](https://gitlab.com/olbat/dockerfiles/-/pipelines) on a daily basis. 6 | 7 | 8 | ## Images 9 | * [Swiss Army Knife](sak/) 10 | * [Bazel](bazel/) 11 | * [GnuPG](gnupg/) 12 | * [ImageMagick](imagemagick/) 13 | * [CUPS print server](cupsd/) 14 | * [Debian packaging tools](debian-pkg/) 15 | * [Java development tools](java-devel/) 16 | * [KCachegrind](kcachegrind/) 17 | * [LibreOffice](libreoffice/) 18 | * [Pandoc](pandoc/) 19 | * [Node.js](nodejs/) 20 | * [uncss](uncss/) 21 | * [uglify](uglify/) 22 | * [JSON Resume](jsonresume/) 23 | * [HackMyResume](hackmyresume/) 24 | 25 | __Note__: images are based on the [official Debian images](https://hub.docker.com/_/debian/) (slim versions) 26 | 27 | ## Dependencies 28 | * Bash 29 | * Docker >= 17.05 (for [moby#31352](https://github.com/moby/moby/pull/31352)) 30 | 31 | 32 | ## Project's structure 33 | * Each directory contains dockerfiles used to build a specific image 34 | * [build.sh](build.sh): builds images and tag them using their directory and the extension of their `Dockerfile` (i.e. the `gnupg/Dockerfile.unstable` is used to build the `$DOCKER_USER/gnupg:unstable` image). 35 | * [build.env](build.env): contains settings for the `build.sh` script 36 | * [gen-dockerfiles.sh](gen-dockerfiles.sh): this script is used to generate dockefiles every time a `gen-*.env` file is found in a directory (the Dockerfile is generated using the `gen-$TYPE-dockerfile.sh` script and named `Dockerfile.$TYPE`) 37 | * [gen-light-dockerfile.sh](gen-light-dockerfiles): this script is used to generate [multi-stage](https://docs.docker.com/engine/userguide/eng-image/multistage-build/) dockefiles used to build light images that only contains a few executables and static files (no system tools, no shell, ...). 38 | * `*/gen-*.env`: contains settings for the Dockerfile generation scripts 39 | -------------------------------------------------------------------------------- /bazel/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install java 8, gpg and bazel package (from upstream repository) 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | gpg \ 9 | curl \ 10 | default-jdk \ 11 | && echo "deb http://storage.googleapis.com/bazel-apt stable jdk1.8" \ 12 | > /etc/apt/sources.list.d/bazel.list \ 13 | && curl https://bazel.build/bazel-release.pub.gpg | apt-key add - \ 14 | && apt-get update \ 15 | && apt-get install -y bazel \ 16 | && apt-get clean \ 17 | && rm -rf /var/lib/apt/lists/* 18 | 19 | # Setup environment 20 | ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64 21 | 22 | # Run bazel a first time for it to self-extract 23 | RUN /usr/bin/bazel version 24 | 25 | # Entrypoint 26 | ENTRYPOINT ["/usr/bin/bazel"] 27 | -------------------------------------------------------------------------------- /bazel/README.md: -------------------------------------------------------------------------------- 1 | # Bazel image 2 | 3 | ## Overview 4 | Docker image including the Google's Bazel automation software (installed from the upstream package). 5 | 6 | ### Included package 7 | * gpg 8 | * openjdk-8-jdk 9 | * bazel 10 | -------------------------------------------------------------------------------- /build.env: -------------------------------------------------------------------------------- 1 | BASE_USER=olbat 2 | MAINTAINER=devel@olbat.net 3 | BUILD_USER=olbat 4 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | set -x 5 | 6 | # important: images are automatically built from a different script, 7 | # see .gitlab-ci/generate-jobs-file.sh 8 | 9 | . build.env 10 | 11 | basebuildargs="--build-arg BASE_USER=$BASE_USER" 12 | basebuildargs+=" --build-arg MAINTAINER=$MAINTAINER" 13 | user=${BUILD_USER:-olbat} 14 | dir=${IMAGE:-*} 15 | dir=${dir%/} 16 | 17 | function build_and_push_docker_image { 18 | local imagename=$1 19 | local tag=$2 20 | local dirname=$3 21 | local buildargs=$4 22 | 23 | buildargs+=" --build-arg BASE_TAG=$tag" 24 | 25 | timeout 300 docker build $buildargs -t $imagename:$tag $dirname/ 26 | 27 | if [ ${PUSH_IMAGES:-} ] 28 | then 29 | docker push $imagename:$tag 30 | 31 | today=$(date +%Y-%m-%d) 32 | 33 | if [ "$tag" == "latest" ] 34 | then 35 | docker tag $imagename:$tag $imagename:$today 36 | docker push $imagename:$today 37 | else 38 | docker tag $imagename:$tag $imagename:$tag-$today 39 | docker push $imagename:$tag-$today 40 | fi 41 | fi 42 | 43 | } 44 | 45 | for dockerfile in $dir/Dockerfile* 46 | do 47 | [ -e $dockerfile ] || (echo "ERROR: file not found $dockerfile"; exit 1) 48 | dirname=$(dirname "$dockerfile") 49 | filename=$(basename "$dockerfile") 50 | args="--pull -f $dockerfile $basebuildargs" 51 | 52 | if [ -f $dirname/tags.env -a $filename == "Dockerfile" ] 53 | then 54 | BASE_TAGS= 55 | . $dirname/tags.env 56 | for tag in $BASE_TAGS 57 | do 58 | build_and_push_docker_image $user/$dirname $tag $dirname "$args" 59 | done 60 | else 61 | [ "$filename" == "Dockerfile" ] && tag=latest || tag=${filename##*.} 62 | build_and_push_docker_image $user/$dirname $tag $dirname "$args" 63 | fi 64 | 65 | done 66 | -------------------------------------------------------------------------------- /cupsd/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:testing-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install Packages (basic tools, cups, basic drivers, HP drivers). 6 | # See https://wiki.debian.org/CUPSDriverlessPrinting, 7 | # https://wiki.debian.org/CUPSPrintQueues 8 | # https://wiki.debian.org/CUPSQuickPrintQueues 9 | # Note: printer-driver-all has been removed from Debian testing, 10 | # therefore printer-driver-* packages are manuall added. 11 | RUN apt-get update \ 12 | && apt-get install -y \ 13 | sudo \ 14 | whois \ 15 | usbutils \ 16 | cups \ 17 | cups-client \ 18 | cups-bsd \ 19 | cups-filters \ 20 | cups-browsed \ 21 | foomatic-db-engine \ 22 | foomatic-db-compressed-ppds \ 23 | openprinting-ppds \ 24 | hp-ppd \ 25 | printer-driver-brlaser \ 26 | printer-driver-c2050 \ 27 | printer-driver-c2esp \ 28 | printer-driver-cjet \ 29 | printer-driver-dymo \ 30 | printer-driver-escpr \ 31 | printer-driver-foo2zjs \ 32 | printer-driver-fujixerox \ 33 | printer-driver-m2300w \ 34 | printer-driver-min12xxw \ 35 | printer-driver-pnm2ppa \ 36 | printer-driver-indexbraille \ 37 | printer-driver-oki \ 38 | printer-driver-ptouch \ 39 | printer-driver-pxljr \ 40 | printer-driver-sag-gdi \ 41 | printer-driver-splix \ 42 | printer-driver-cups-pdf \ 43 | smbclient \ 44 | avahi-utils \ 45 | && apt-get clean \ 46 | && rm -rf /var/lib/apt/lists/* 47 | 48 | # This will use port 631 49 | EXPOSE 631 50 | 51 | # Add user and disable sudo password checking 52 | RUN useradd \ 53 | --groups=sudo,lp,lpadmin \ 54 | --create-home \ 55 | --home-dir=/home/print \ 56 | --shell=/bin/bash \ 57 | --password=$(mkpasswd print) \ 58 | print \ 59 | && sed -i '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers 60 | 61 | # Copy the default configuration file 62 | COPY --chown=root:lp cupsd.conf /etc/cups/cupsd.conf 63 | 64 | # Default shell 65 | CMD ["/usr/sbin/cupsd", "-f"] 66 | -------------------------------------------------------------------------------- /cupsd/Dockerfile.stable: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install Packages (basic tools, cups, basic drivers, HP drivers) 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | sudo \ 9 | whois \ 10 | usbutils \ 11 | cups \ 12 | cups-client \ 13 | cups-bsd \ 14 | cups-filters \ 15 | foomatic-db-compressed-ppds \ 16 | printer-driver-all \ 17 | openprinting-ppds \ 18 | hpijs-ppds \ 19 | hp-ppd \ 20 | hplip \ 21 | smbclient \ 22 | printer-driver-cups-pdf \ 23 | && apt-get clean \ 24 | && rm -rf /var/lib/apt/lists/* 25 | 26 | # This will use port 631 27 | EXPOSE 631 28 | 29 | # Add user and disable sudo password checking 30 | RUN useradd \ 31 | --groups=sudo,lp,lpadmin \ 32 | --create-home \ 33 | --home-dir=/home/print \ 34 | --shell=/bin/bash \ 35 | --password=$(mkpasswd print) \ 36 | print \ 37 | && sed -i '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers 38 | 39 | # Copy the default configuration file 40 | COPY --chown=root:lp cupsd.conf /etc/cups/cupsd.conf 41 | 42 | # Default shell 43 | CMD ["/usr/sbin/cupsd", "-f"] 44 | -------------------------------------------------------------------------------- /cupsd/README.md: -------------------------------------------------------------------------------- 1 | # CUPS print server image 2 | 3 | ## Overview 4 | Docker image including CUPS print server and printing drivers (installed from the Debian packages). 5 | 6 | ## Run the Cups server 7 | Using the default [cupsd.conf](cupsd.conf) configuration file: 8 | ```bash 9 | docker run -d -p 631:631 -v /var/run/dbus:/var/run/dbus --name cupsd olbat/cupsd 10 | ``` 11 | 12 | Using a custom cupsd.conf configuration file: 13 | ```bash 14 | docker run -d -p 631:631 -v /var/run/dbus:/var/run/dbus -v $PWD/cupsd.conf:/etc/cups/cupsd.conf --name cupsd olbat/cupsd` 15 | ``` 16 | 17 | __Note__: the following mount can be added to configure a printer connected through USB `-v /dev/bus/usb:/dev/bus/usb` see https://github.com/olbat/dockerfiles/issues/103#issuecomment-2187149476 18 | 19 | __Note (bis)__: if the daemon fails to start with a `cupsdDoSelect() failed` error, you can fix the issue by adjusting the container's `ulimit` configuration, see https://github.com/olbat/dockerfiles/issues/111#issuecomment-2529393079 20 | 21 | 22 | ## Add printers to the Cups server 23 | 1. Connect to the Cups server at [http://127.0.0.1:631](http://127.0.0.1:631) 24 | 2. Add printers: Administration > Printers > Add Printer 25 | 26 | __Note__: The admin user/password for the Cups server is `print`/`print` 27 | 28 | ## Configure Cups client on your machine 29 | 1. Install the `cups-client` package 30 | 2. Edit the `/etc/cups/client.conf`, set `ServerName` to `127.0.0.1:631` 31 | 3. Test the connectivity with the Cups server using `lpstat -r` 32 | 4. Test that printers are detected using `lpstat -v` 33 | 5. Applications on your machine should now detect the printers! 34 | 35 | ### Included package 36 | * cups, cups-client, cups-filters 37 | * foomatic-db 38 | * printer-driver-all, printer-driver-cups-pdf 39 | * openprinting-ppds 40 | * hpijs-ppds, hp-ppd 41 | * sudo, whois 42 | * smbclient 43 | 44 | ### Troubleshooting 45 | This Dockerfile can be used to build an image is containing most of the printing drivers packaged by Debian's team and allows to run a CUPS daemon to create a remote print server. 46 | 47 | Now, this is as good as it gets! This repository has nothing to do with maintaining/debugging/supporting printer drivers packaged in Debian or the CUPS service. 48 | 49 | If you need support on those topics, please try to reach out to the relevant support channels: 50 | - [Debian forums](http://forums.debian.net/) 51 | - [Debian "printing" team](https://wiki.debian.org/Teams/Printing) 52 | - [cups mailing list](https://lists.cups.org/mailman/listinfo/cups) 53 | - or one of the many other options you could easily find using your favorite search engine! 54 | 55 | If you have some questions about how to start the container, make it accessible through your local network, run it on your NAS, etc. again, this is not the good place to ask them. 56 | 57 | In that case, please reach out to the relevant support channels. If you have an issue related to Docker's networking, I also strongly advise you to have a look at Docker's [documentation page](https://docs.docker.com/network/) on that topic to get a good grasp on the main concepts in play. 58 | -------------------------------------------------------------------------------- /cupsd/cupsd.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Configuration file for the CUPS scheduler. See "man cupsd.conf" for a 3 | # complete description of this file. 4 | # 5 | 6 | # Log general information in error_log - change "warn" to "debug" 7 | # for troubleshooting... 8 | LogLevel warn 9 | PageLogFormat 10 | 11 | # Specifies the maximum size of the log files before they are rotated. The value "0" disables log rotation. 12 | MaxLogSize 0 13 | 14 | # Default error policy for printers 15 | ErrorPolicy retry-job 16 | 17 | # Allow remote access 18 | Listen *:631 19 | ServerAlias * 20 | 21 | # Show shared printers on the local network. 22 | Browsing Yes 23 | BrowseLocalProtocols dnssd 24 | 25 | # Default authentication type, when authentication is required... 26 | DefaultAuthType Basic 27 | DefaultEncryption IfRequested 28 | 29 | # Web interface setting... 30 | WebInterface Yes 31 | 32 | # Timeout after cupsd exits if idle (applied only if cupsd runs on-demand - with -l) 33 | IdleExitTimeout 60 34 | 35 | # Restrict access to the server... 36 | 37 | Order allow,deny 38 | Allow all 39 | 40 | 41 | # Restrict access to the admin pages... 42 | 43 | Order allow,deny 44 | Allow all 45 | 46 | 47 | # Restrict access to configuration files... 48 | 49 | AuthType Default 50 | Require user @SYSTEM 51 | Order allow,deny 52 | Allow all 53 | 54 | 55 | # Restrict access to log files... 56 | 57 | AuthType Default 58 | Require user @SYSTEM 59 | Order allow,deny 60 | Allow all 61 | 62 | 63 | # Set the default printer/job policies... 64 | 65 | # Job/subscription privacy... 66 | JobPrivateAccess default 67 | JobPrivateValues default 68 | SubscriptionPrivateAccess default 69 | SubscriptionPrivateValues default 70 | 71 | # Job-related operations must be done by the owner or an administrator... 72 | 73 | Order deny,allow 74 | 75 | 76 | 77 | Require user @OWNER @SYSTEM 78 | Order deny,allow 79 | 80 | 81 | # All administration operations require an administrator to authenticate... 82 | 83 | AuthType Default 84 | Require user @SYSTEM 85 | Order deny,allow 86 | 87 | 88 | # All printer operations require a printer operator to authenticate... 89 | 90 | AuthType Default 91 | Require user @SYSTEM 92 | Order deny,allow 93 | 94 | 95 | # Only the owner or an administrator can cancel or authenticate a job... 96 | 97 | Require user @OWNER @SYSTEM 98 | Order deny,allow 99 | 100 | 101 | 102 | Order deny,allow 103 | 104 | 105 | 106 | # Set the authenticated printer/job policies... 107 | 108 | # Job/subscription privacy... 109 | JobPrivateAccess default 110 | JobPrivateValues default 111 | SubscriptionPrivateAccess default 112 | SubscriptionPrivateValues default 113 | 114 | # Job-related operations must be done by the owner or an administrator... 115 | 116 | AuthType Default 117 | Order deny,allow 118 | 119 | 120 | 121 | AuthType Default 122 | Require user @OWNER @SYSTEM 123 | Order deny,allow 124 | 125 | 126 | # All administration operations require an administrator to authenticate... 127 | 128 | AuthType Default 129 | Require user @SYSTEM 130 | Order deny,allow 131 | 132 | 133 | # All printer operations require a printer operator to authenticate... 134 | 135 | AuthType Default 136 | Require user @SYSTEM 137 | Order deny,allow 138 | 139 | 140 | # Only the owner or an administrator can cancel or authenticate a job... 141 | 142 | AuthType Default 143 | Require user @OWNER @SYSTEM 144 | Order deny,allow 145 | 146 | 147 | 148 | Order deny,allow 149 | 150 | 151 | 152 | # Set the kerberized printer/job policies... 153 | 154 | # Job/subscription privacy... 155 | JobPrivateAccess default 156 | JobPrivateValues default 157 | SubscriptionPrivateAccess default 158 | SubscriptionPrivateValues default 159 | 160 | # Job-related operations must be done by the owner or an administrator... 161 | 162 | AuthType Negotiate 163 | Order deny,allow 164 | 165 | 166 | 167 | AuthType Negotiate 168 | Require user @OWNER @SYSTEM 169 | Order deny,allow 170 | 171 | 172 | # All administration operations require an administrator to authenticate... 173 | 174 | AuthType Default 175 | Require user @SYSTEM 176 | Order deny,allow 177 | 178 | 179 | # All printer operations require a printer operator to authenticate... 180 | 181 | AuthType Default 182 | Require user @SYSTEM 183 | Order deny,allow 184 | 185 | 186 | # Only the owner or an administrator can cancel or authenticate a job... 187 | 188 | AuthType Negotiate 189 | Require user @OWNER @SYSTEM 190 | Order deny,allow 191 | 192 | 193 | 194 | Order deny,allow 195 | 196 | 197 | -------------------------------------------------------------------------------- /debian-pkg/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_TAG 2 | ARG MAINTAINER 3 | FROM debian:$BASE_TAG-slim 4 | MAINTAINER $MAINTAINER 5 | 6 | # Add debian sources repository and install Debian devel. and packaging tools 7 | RUN echo \ 8 | "deb-src http://deb.debian.org/debian/ $(sed -n -e '/VERSION_CODENAME/ s/.*=//p' /usr/lib/os-release) main" \ 9 | > /etc/apt/sources.list.d/debian-sources.list \ 10 | && apt-get update \ 11 | && echo '' | apt-get install -y --no-install-recommends \ 12 | sudo \ 13 | build-essential \ 14 | debhelper \ 15 | devscripts \ 16 | fakeroot \ 17 | equivs \ 18 | lintian \ 19 | quilt \ 20 | nvi \ 21 | git \ 22 | git-buildpackage \ 23 | pristine-tar \ 24 | dh-make \ 25 | dh-make-golang \ 26 | dh-make-perl \ 27 | python3-stdeb \ 28 | pypi2deb \ 29 | gem2deb \ 30 | make \ 31 | cmake \ 32 | automake \ 33 | autoconf \ 34 | rake \ 35 | node-jake \ 36 | help2man \ 37 | && apt-get clean \ 38 | && rm -rf /var/lib/apt/lists/* 39 | 40 | # Add debian user and disable sudo password checking + display a warning if 41 | # the the DEBFULLNAME or DEBEMAIL variables were not overridden at launch time 42 | RUN useradd \ 43 | --groups=sudo \ 44 | --create-home \ 45 | --home-dir=/home/debian \ 46 | --shell=/bin/bash \ 47 | debian \ 48 | && sed -i '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers \ 49 | && echo -e \ 50 | '[ "$DEBEMAIL" == "user@domaim.tld" -o "$DEBFULLNAME" == "Debian" ] \\\n'\ 51 | ' && echo "WARNING: please do not forget to customize" \\\n'\ 52 | ' "DEBFULLNAME and DEBEMAIL env vars"' \ 53 | >> /home/debian/.bashrc 54 | 55 | # Setup environment 56 | ENV DEBFULLNAME Debian 57 | ENV DEBEMAIL user@domain.tld 58 | USER debian 59 | WORKDIR /home/debian 60 | 61 | # Default shell 62 | CMD ["/bin/bash","--login","-i"] 63 | -------------------------------------------------------------------------------- /debian-pkg/README.md: -------------------------------------------------------------------------------- 1 | # Debian packaging image 2 | 3 | ## Overview 4 | Docker image including Debian development and packaging tools. 5 | 6 | ## Configuration 7 | The _sudo_ package is installed by default, password checking has been disabled. 8 | 9 | _Note:_ don't forget to customize `DEBFULLNAME` and `DEBEMAIL` environment variables. 10 | 11 | ## Run examples 12 | Run dch (in the current directory) 13 | ```bash 14 | docker run -it --rm -v $(pwd):/src -w /src \ 15 | -e DEBFULLNAME='Name' -e DEBEMAIL='name@domain.tld' \ 16 | olbat/debian-pkg dch -i 17 | ``` 18 | 19 | Run debuild (testing) 20 | ```bash 21 | docker run -it --rm -v ${PWD}:/home/debian -w /home/debian/$(basename $PWD) \ 22 | -e DEBFULLNAME='Name' -e DEBEMAIL='name@domain.tld' \ 23 | olbat/debian-pkg:testing debuild -us -uc 24 | ``` 25 | 26 | Open a shell (stable) 27 | ```bash 28 | docker run -it --rm -v $(pwd):/src -w /src \ 29 | -e DEBFULLNAME='Name' -e DEBEMAIL='name@domain.tld' \ 30 | olbat/debian-pkg:stable /bin/bash 31 | ``` 32 | 33 | ### Included packages 34 | 35 | Debian packaging tools: 36 | * build-essential 37 | * debhelper 38 | * dh-systemd 39 | * devscripts 40 | * fakeroot 41 | * dpatch 42 | * equivs 43 | * lintian 44 | * quilt 45 | * nvi 46 | 47 | Debian automatic packaging tools: 48 | * dh-make 49 | * dh-make-golang 50 | * dh-make-perl 51 | * python3-stdeb 52 | * pypi2deb 53 | * gem2deb 54 | * npm2deb 55 | 56 | Build automation tools: 57 | * make 58 | * cmake 59 | * automake 60 | * autoconf 61 | * rake 62 | * node-jake 63 | * help2man 64 | 65 | Source code management tools: 66 | * git 67 | * git-buildpackage 68 | * pristine-tar 69 | * subversion 70 | -------------------------------------------------------------------------------- /debian-pkg/tags.env: -------------------------------------------------------------------------------- 1 | BASE_TAGS="stable" 2 | # FIXME: unstable & testing are temporary disabled because of a pbuilder error 3 | # (see https://travis-ci.org/github/olbat/dockerfiles/jobs/734669890 4 | # and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790565) 5 | #BASE_TAGS="stable testing unstable" 6 | -------------------------------------------------------------------------------- /gen-dockerfiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | set -x 5 | 6 | dir=${IMAGE%/} 7 | for envfile in ${dir:-*}/gen-*.env 8 | do 9 | type=$(basename $envfile .env) 10 | type=${type##*-} 11 | script="./gen-${type}-dockerfile.sh" 12 | dockerfile=$(dirname $envfile)/Dockerfile.$type 13 | [ -x $script ] && $script $envfile > $dockerfile 14 | done 15 | -------------------------------------------------------------------------------- /gen-light-dockerfile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | [ $# -ge 1 ] && . $1 6 | 7 | BASEIMAGE=${BASEIMAGE:-debian:stable-slim} 8 | EXECUTABLES=${EXECUTABLES:-"/bin/bash /bin/cat"} 9 | FILES=${FILES:-"/etc/debian_version"} 10 | SHARED_LIBRARIES=${SHARED_LIBRARIES:-} 11 | EXECUTABLES_DESTINATION=${EXECUTABLES_DESTINATION:-/bin/} 12 | 13 | 14 | cat < -f2 | cut -d\( -f1 | sort -u \ 28 | | xargs -n1 -I{} echo "COPY --from=base {} {}") 29 | 30 | $([ $SHARED_LIBRARIES ] && { 31 | echo -e "COPY --from=base \\" \ 32 | && echo -n $SHARED_LIBRARIES | xargs -d' ' -n1 -I{} echo -e "\t{} \\" \ 33 | && echo -e "\t/lib/"; }) 34 | 35 | COPY --from=base \\ 36 | $(docker run --rm $BASEIMAGE sh -c "ldd $EXECUTABLES $SHARED_LIBRARIES" \ 37 | | grep -v '^[[:space:]]\+/\|:\|linux-vdso.so\|not a dynamic executable'\ 38 | | cut -d\> -f2 | cut -d\( -f1 | sort -u \ 39 | | xargs -n1 -I{} echo -e "\t{} \\") 40 | /lib/ 41 | 42 | $(echo -n $FILES | xargs -d' ' -n1 -I{} echo "COPY --from=base {} {}") 43 | 44 | CMD ["$(echo $EXECUTABLES | cut -d' ' -f1)"] 45 | EOF 46 | -------------------------------------------------------------------------------- /gnupg/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_TAG 2 | ARG MAINTAINER 3 | FROM debian:$BASE_TAG-slim 4 | MAINTAINER $MAINTAINER 5 | 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | gnupg \ 9 | gnupg-agent \ 10 | pinentry-tty \ 11 | scdaemon \ 12 | openssl \ 13 | git \ 14 | secure-delete \ 15 | && apt-get clean \ 16 | && rm -rf /var/lib/apt/lists/* 17 | 18 | # Copy GnuPG default's configuration file 19 | COPY gpg.conf /etc/gnupg/gpgconf.conf 20 | RUN mkdir -p /root/.gnupg \ 21 | && chmod 700 /root/.gnupg 22 | COPY gpg.conf /root/.gnupg/ 23 | RUN chmod 600 /root/.gnupg/gpg.conf 24 | 25 | WORKDIR /root 26 | VOLUME "/root/.gnupg/" 27 | RUN chsh -s /bin/bash 28 | CMD ["/bin/bash","--login","-i"] 29 | -------------------------------------------------------------------------------- /gnupg/Dockerfile.light: -------------------------------------------------------------------------------- 1 | FROM olbat/gnupg:stable AS base 2 | 3 | FROM scratch 4 | ARG MAINTAINER 5 | MAINTAINER $MAINTAINER 6 | 7 | COPY --from=base \ 8 | /usr/bin/gpg \ 9 | /usr/bin/dirmngr \ 10 | /usr/bin/gpg-agent \ 11 | /usr/bin/pinentry \ 12 | /usr/bin/ 13 | 14 | COPY --from=base /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 15 | 16 | 17 | 18 | COPY --from=base \ 19 | /lib/x86_64-linux-gnu/libassuan.so.0 \ 20 | /lib/x86_64-linux-gnu/libbz2.so.1.0 \ 21 | /lib/x86_64-linux-gnu/libc.so.6 \ 22 | /lib/x86_64-linux-gnu/libffi.so.8 \ 23 | /lib/x86_64-linux-gnu/libgcrypt.so.20 \ 24 | /lib/x86_64-linux-gnu/libgmp.so.10 \ 25 | /lib/x86_64-linux-gnu/libgnutls.so.30 \ 26 | /lib/x86_64-linux-gnu/libgpg-error.so.0 \ 27 | /lib/x86_64-linux-gnu/libhogweed.so.6 \ 28 | /lib/x86_64-linux-gnu/libidn2.so.0 \ 29 | /lib/x86_64-linux-gnu/libksba.so.8 \ 30 | /lib/x86_64-linux-gnu/liblber-2.5.so.0 \ 31 | /lib/x86_64-linux-gnu/libldap-2.5.so.0 \ 32 | /lib/x86_64-linux-gnu/libm.so.6 \ 33 | /lib/x86_64-linux-gnu/libnettle.so.8 \ 34 | /lib/x86_64-linux-gnu/libnpth.so.0 \ 35 | /lib/x86_64-linux-gnu/libp11-kit.so.0 \ 36 | /lib/x86_64-linux-gnu/libpthread.so.0 \ 37 | /lib/x86_64-linux-gnu/libreadline.so.8 \ 38 | /lib/x86_64-linux-gnu/libsasl2.so.2 \ 39 | /lib/x86_64-linux-gnu/libsqlite3.so.0 \ 40 | /lib/x86_64-linux-gnu/libtasn1.so.6 \ 41 | /lib/x86_64-linux-gnu/libtinfo.so.6 \ 42 | /lib/x86_64-linux-gnu/libunistring.so.2 \ 43 | /lib/x86_64-linux-gnu/libz.so.1 \ 44 | /lib/ 45 | 46 | COPY --from=base /etc/passwd /etc/passwd 47 | COPY --from=base /etc/group /etc/group 48 | COPY --from=base /etc/shadow /etc/shadow 49 | COPY --from=base /etc/gnupg /etc/gnupg 50 | COPY --from=base /root/.gnupg /root/.gnupg 51 | COPY --from=base /usr/share/gnupg/sks-keyservers.netCA.pem /usr/share/gnupg/sks-keyservers.netCA.pem 52 | 53 | CMD ["/usr/bin/gpg"] 54 | -------------------------------------------------------------------------------- /gnupg/README.md: -------------------------------------------------------------------------------- 1 | # GnuPG image 2 | 3 | ## Overview 4 | Docker image including GnuPG and some tools (installed from the Debian package). 5 | 6 | ### Included package 7 | * gnupg 8 | * gnupg-agent 9 | * openssl 10 | * hopenpgp-tools 11 | * secure-delete 12 | * git 13 | -------------------------------------------------------------------------------- /gnupg/gen-light.env: -------------------------------------------------------------------------------- 1 | BASEIMAGE="olbat/gnupg:stable" 2 | EXECUTABLES="/usr/bin/gpg /usr/bin/dirmngr /usr/bin/gpg-agent /usr/bin/pinentry" 3 | EXECUTABLES_DESTINATION="/usr/bin/" 4 | FILES="/etc/passwd /etc/group /etc/shadow /etc/gnupg /root/.gnupg /usr/share/gnupg/sks-keyservers.netCA.pem" 5 | -------------------------------------------------------------------------------- /gnupg/gpg.conf: -------------------------------------------------------------------------------- 1 | # see https://riseup.net/en/security/message-security/openpgp/best-practices 2 | keyserver hkps://hkps.pool.sks-keyservers.net 3 | keyserver-options no-honor-keyserver-url 4 | 5 | personal-cipher-preferences AES256 AES192 AES CAST5 6 | personal-digest-preferences SHA512 SHA384 SHA256 SHA224 7 | cert-digest-algo SHA512 8 | default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed 9 | -------------------------------------------------------------------------------- /gnupg/tags.env: -------------------------------------------------------------------------------- 1 | BASE_TAGS="stable testing unstable" 2 | -------------------------------------------------------------------------------- /gpg: -------------------------------------------------------------------------------- 1 | gnupg/ -------------------------------------------------------------------------------- /hackmyresume/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_USER 2 | ARG MAINTAINER 3 | FROM ${BASE_USER}/nodejs 4 | MAINTAINER $MAINTAINER 5 | 6 | # Install wkhtmltopdf to be able to generate PDF resumes 7 | RUN sudo apt-get update && sudo apt-get install -y wkhtmltopdf 8 | 9 | # Install hackmyresume and jsonresume themes packages 10 | RUN sudo npm install -g \ 11 | hackmyresume \ 12 | jsonresume-theme-elegant \ 13 | jsonresume-theme-paper \ 14 | jsonresume-theme-kendall \ 15 | jsonresume-theme-modern \ 16 | jsonresume-theme-classy \ 17 | jsonresume-theme-class \ 18 | jsonresume-theme-short \ 19 | jsonresume-theme-slick \ 20 | jsonresume-theme-kwan \ 21 | jsonresume-theme-onepage \ 22 | jsonresume-theme-spartan \ 23 | jsonresume-theme-stackoverflow 24 | -------------------------------------------------------------------------------- /hackmyresume/README.md: -------------------------------------------------------------------------------- 1 | # HackMyResume image 2 | 3 | ## Overview 4 | Docker image including [HackMyResume](https://fluentdesk.com/hackmyresume). 5 | 6 | ### Included NPM packages 7 | * hackmyresume 8 | * jsonresume-theme-elegant 9 | * jsonresume-theme-paper 10 | * jsonresume-theme-kendall 11 | * jsonresume-theme-modern 12 | * jsonresume-theme-classy 13 | * jsonresume-theme-class 14 | * jsonresume-theme-short 15 | * jsonresume-theme-slick 16 | * jsonresume-theme-kwan 17 | * jsonresume-theme-onepage 18 | * jsonresume-theme-spartan 19 | * jsonresume-theme-stackoverflow 20 | 21 | ### Included package 22 | * wkhtmltopdf 23 | 24 | ### Included package (from olbat/nodejs) 25 | * nodejs 26 | -------------------------------------------------------------------------------- /imagemagick/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | RUN apt-get update \ 6 | && apt-get install -y imagemagick \ 7 | && apt-get clean \ 8 | && rm -rf /var/lib/apt/lists/* 9 | 10 | CMD ["/usr/bin/identify"] 11 | -------------------------------------------------------------------------------- /imagemagick/Dockerfile.light: -------------------------------------------------------------------------------- 1 | FROM olbat/imagemagick AS base 2 | 3 | FROM scratch 4 | ARG MAINTAINER 5 | MAINTAINER $MAINTAINER 6 | 7 | COPY --from=base \ 8 | /usr/bin/identify \ 9 | /usr/bin/mogrify \ 10 | /usr/bin/montage \ 11 | /usr/bin/display \ 12 | /usr/bin/stream \ 13 | /usr/bin/import \ 14 | /usr/bin/conjure \ 15 | /usr/bin/composite \ 16 | /usr/bin/convert \ 17 | /usr/bin/animate \ 18 | /usr/bin/compare \ 19 | /bin/ 20 | 21 | COPY --from=base /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 22 | 23 | COPY --from=base \ 24 | /usr/lib/x86_64-linux-gnu/ImageMagick-6.9.11/modules-Q16/coders/*.so \ 25 | /lib/ 26 | 27 | COPY --from=base \ 28 | /lib/x86_64-linux-gnu/libaom.so.3 \ 29 | /lib/x86_64-linux-gnu/libblkid.so.1 \ 30 | /lib/x86_64-linux-gnu/libbrotlicommon.so.1 \ 31 | /lib/x86_64-linux-gnu/libbrotlidec.so.1 \ 32 | /lib/x86_64-linux-gnu/libbsd.so.0 \ 33 | /lib/x86_64-linux-gnu/libbz2.so.1.0 \ 34 | /lib/x86_64-linux-gnu/libcairo.so.2 \ 35 | /lib/x86_64-linux-gnu/libc.so.6 \ 36 | /lib/x86_64-linux-gnu/libdatrie.so.1 \ 37 | /lib/x86_64-linux-gnu/libdav1d.so.6 \ 38 | /lib/x86_64-linux-gnu/libde265.so.0 \ 39 | /lib/x86_64-linux-gnu/libdeflate.so.0 \ 40 | /lib/x86_64-linux-gnu/libdjvulibre.so.21 \ 41 | /lib/x86_64-linux-gnu/libdl.so.2 \ 42 | /lib/x86_64-linux-gnu/libexpat.so.1 \ 43 | /lib/x86_64-linux-gnu/libffi.so.8 \ 44 | /lib/x86_64-linux-gnu/libfftw3.so.3 \ 45 | /lib/x86_64-linux-gnu/libfontconfig.so.1 \ 46 | /lib/x86_64-linux-gnu/libfreetype.so.6 \ 47 | /lib/x86_64-linux-gnu/libfribidi.so.0 \ 48 | /lib/x86_64-linux-gnu/libgcc_s.so.1 \ 49 | /lib/x86_64-linux-gnu/libgio-2.0.so.0 \ 50 | /lib/x86_64-linux-gnu/libglib-2.0.so.0 \ 51 | /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 \ 52 | /lib/x86_64-linux-gnu/libgobject-2.0.so.0 \ 53 | /lib/x86_64-linux-gnu/libgomp.so.1 \ 54 | /lib/x86_64-linux-gnu/libgraphite2.so.3 \ 55 | /lib/x86_64-linux-gnu/libharfbuzz.so.0 \ 56 | /lib/x86_64-linux-gnu/libheif.so.1 \ 57 | /lib/x86_64-linux-gnu/libicudata.so.72 \ 58 | /lib/x86_64-linux-gnu/libicuuc.so.72 \ 59 | /lib/x86_64-linux-gnu/libIex-3_1.so.30 \ 60 | /lib/x86_64-linux-gnu/libIlmThread-3_1.so.30 \ 61 | /lib/x86_64-linux-gnu/libImath-3_1.so.29 \ 62 | /lib/x86_64-linux-gnu/libjbig.so.0 \ 63 | /lib/x86_64-linux-gnu/libjpeg.so.62 \ 64 | /lib/x86_64-linux-gnu/liblcms2.so.2 \ 65 | /lib/x86_64-linux-gnu/libLerc.so.4 \ 66 | /lib/x86_64-linux-gnu/liblqr-1.so.0 \ 67 | /lib/x86_64-linux-gnu/libltdl.so.7 \ 68 | /lib/x86_64-linux-gnu/liblzma.so.5 \ 69 | /lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.6 \ 70 | /lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.6 \ 71 | /lib/x86_64-linux-gnu/libmd.so.0 \ 72 | /lib/x86_64-linux-gnu/libmount.so.1 \ 73 | /lib/x86_64-linux-gnu/libm.so.6 \ 74 | /lib/x86_64-linux-gnu/libnuma.so.1 \ 75 | /lib/x86_64-linux-gnu/libOpenEXR-3_1.so.30 \ 76 | /lib/x86_64-linux-gnu/libopenjp2.so.7 \ 77 | /lib/x86_64-linux-gnu/libpango-1.0.so.0 \ 78 | /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 \ 79 | /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 \ 80 | /lib/x86_64-linux-gnu/libpcre2-8.so.0 \ 81 | /lib/x86_64-linux-gnu/libpixman-1.so.0 \ 82 | /lib/x86_64-linux-gnu/libpng16.so.16 \ 83 | /lib/x86_64-linux-gnu/libpthread.so.0 \ 84 | /lib/x86_64-linux-gnu/libselinux.so.1 \ 85 | /lib/x86_64-linux-gnu/libstdc++.so.6 \ 86 | /lib/x86_64-linux-gnu/libthai.so.0 \ 87 | /lib/x86_64-linux-gnu/libtiff.so.6 \ 88 | /lib/x86_64-linux-gnu/libwebpdemux.so.2 \ 89 | /lib/x86_64-linux-gnu/libwebpmux.so.3 \ 90 | /lib/x86_64-linux-gnu/libwebp.so.7 \ 91 | /lib/x86_64-linux-gnu/libwmflite-0.2.so.7 \ 92 | /lib/x86_64-linux-gnu/libX11.so.6 \ 93 | /lib/x86_64-linux-gnu/libx265.so.199 \ 94 | /lib/x86_64-linux-gnu/libXau.so.6 \ 95 | /lib/x86_64-linux-gnu/libxcb-render.so.0 \ 96 | /lib/x86_64-linux-gnu/libxcb-shm.so.0 \ 97 | /lib/x86_64-linux-gnu/libxcb.so.1 \ 98 | /lib/x86_64-linux-gnu/libXdmcp.so.6 \ 99 | /lib/x86_64-linux-gnu/libXext.so.6 \ 100 | /lib/x86_64-linux-gnu/libxml2.so.2 \ 101 | /lib/x86_64-linux-gnu/libXrender.so.1 \ 102 | /lib/x86_64-linux-gnu/libz.so.1 \ 103 | /lib/x86_64-linux-gnu/libzstd.so.1 \ 104 | /lib/ 105 | 106 | COPY --from=base /usr/lib/x86_64-linux-gnu/ImageMagick-6.9.11 /usr/lib/x86_64-linux-gnu/ImageMagick-6.9.11 107 | COPY --from=base /etc/ImageMagick-6 /etc/ImageMagick-6 108 | COPY --from=base /usr/share/ImageMagick-6 /usr/share/ImageMagick-6 109 | 110 | CMD ["/usr/bin/identify"] 111 | -------------------------------------------------------------------------------- /imagemagick/README.md: -------------------------------------------------------------------------------- 1 | # ImageMagick image 2 | 3 | ## Overview 4 | Docker image including ImageMagick 5 | 6 | ### Included Debian packages 7 | * imagemagick 8 | -------------------------------------------------------------------------------- /imagemagick/gen-light.env: -------------------------------------------------------------------------------- 1 | BASEIMAGE="olbat/imagemagick" 2 | EXECUTABLES="/usr/bin/identify /usr/bin/mogrify /usr/bin/montage /usr/bin/display /usr/bin/stream /usr/bin/import /usr/bin/conjure /usr/bin/composite /usr/bin/convert /usr/bin/animate /usr/bin/compare" 3 | SHARED_LIBRARIES="/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.11/modules-Q16/coders/*.so" 4 | FILES="/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.11 /etc/ImageMagick-6 /usr/share/ImageMagick-6" 5 | -------------------------------------------------------------------------------- /java-devel/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install Packages (basic and Java development tools) 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | sudo \ 9 | git \ 10 | curl \ 11 | gcc \ 12 | openjdk-17-jdk \ 13 | maven \ 14 | ant \ 15 | ivy \ 16 | gradle \ 17 | && apt-get clean \ 18 | && rm -rf /var/lib/apt/lists/* 19 | 20 | # Add java user and disable sudo password checking 21 | RUN useradd \ 22 | --groups=sudo \ 23 | --create-home \ 24 | --home-dir=/home/java \ 25 | --shell=/bin/bash \ 26 | java \ 27 | && sed -i '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers 28 | 29 | # Setup environment 30 | ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64 31 | RUN /bin/echo -e "export JAVA_HOME=${JAVA_HOME}" >> /home/java/.bashrc 32 | USER java 33 | WORKDIR /home/java 34 | 35 | # Default shell 36 | CMD ["/bin/bash","--login","-i"] 37 | -------------------------------------------------------------------------------- /java-devel/README.md: -------------------------------------------------------------------------------- 1 | # Java devel image 2 | 3 | ## Overview 4 | Docker image including Java development tools (installed from the Debian package). 5 | 6 | ### Included package 7 | * openjdk-8-jdk 8 | * maven 9 | * ant 10 | * ivy 11 | * gradle 12 | -------------------------------------------------------------------------------- /jsonresume/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_USER 2 | ARG MAINTAINER 3 | FROM ${BASE_USER}/nodejs 4 | MAINTAINER $MAINTAINER 5 | 6 | # Install the resume and themes packages (from the website) 7 | RUN sudo npm install -g --unsafe-perm=true \ 8 | resume-cli \ 9 | jsonresume-theme-elegant \ 10 | jsonresume-theme-paper \ 11 | jsonresume-theme-kendall \ 12 | jsonresume-theme-modern \ 13 | jsonresume-theme-classy \ 14 | jsonresume-theme-class \ 15 | jsonresume-theme-short \ 16 | jsonresume-theme-slick \ 17 | jsonresume-theme-kwan \ 18 | jsonresume-theme-onepage \ 19 | jsonresume-theme-spartan \ 20 | jsonresume-theme-stackoverflow 21 | -------------------------------------------------------------------------------- /jsonresume/README.md: -------------------------------------------------------------------------------- 1 | # JSON Resume image 2 | 3 | ## Overview 4 | Docker image including JSON Resume (see [jsonresume.org](https://jsonresume.org/)). 5 | 6 | ### Included NPM packages 7 | * resume-cli 8 | * jsonresume-theme-elegant 9 | * jsonresume-theme-paper 10 | * jsonresume-theme-kendall 11 | * jsonresume-theme-modern 12 | * jsonresume-theme-classy 13 | * jsonresume-theme-class 14 | * jsonresume-theme-short 15 | * jsonresume-theme-slick 16 | * jsonresume-theme-kwan 17 | * jsonresume-theme-onepage 18 | * jsonresume-theme-spartan 19 | * jsonresume-theme-stackoverflow 20 | 21 | ### Included package (from olbat/nodejs) 22 | * nodejs 23 | -------------------------------------------------------------------------------- /kcachegrind/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:testing-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install kcachegrind 6 | RUN apt-get update \ 7 | && apt-get install -y kcachegrind \ 8 | && apt-get clean \ 9 | && rm -rf /var/lib/apt/lists/* 10 | 11 | CMD ["/usr/bin/kcachegrind"] 12 | -------------------------------------------------------------------------------- /kcachegrind/README.md: -------------------------------------------------------------------------------- 1 | # KCachegrind image 2 | 3 | ## Overview 4 | Docker image including the KCacheGrind tool. 5 | 6 | ## Run 7 | ```bash 8 | docker run --rm -it -v $(pwd):/home/user -v /tmp/.X11-unix:/tmp/.X11-unix \ 9 | -e DISPLAY=unix$DISPLAY olbat/kcachegrind 10 | ``` 11 | 12 | ## Included packages 13 | * kcachegrind 14 | -------------------------------------------------------------------------------- /libreoffice/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install Packages 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | sudo \ 9 | curl \ 10 | openjdk-17-jre \ 11 | libreoffice-help-en-us \ 12 | hunspell-en-us \ 13 | mythes-en-us \ 14 | hyphen-en-us \ 15 | libreoffice \ 16 | && apt-get clean \ 17 | && rm -rf /var/lib/apt/lists/* 18 | 19 | # Configure Java Env. (see https://wiki.debian.org/LibreOffice#Java_Environment) 20 | ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64 21 | 22 | # Install LanguageTool extension 23 | 24 | # FIXME: temporary disabled because of an error similar to this one: 25 | # https://github.com/hanya/MRI/issues/11 26 | 27 | #RUN curl -s https://www.languagetool.org/download/LanguageTool-stable.oxt \ 28 | # > /tmp/LanguageTool.oxt \ 29 | #&& unopkg add --shared /tmp/LanguageTool.oxt \ 30 | #&& rm /tmp/LanguageTool.oxt 31 | 32 | # Default volume 33 | RUN mkdir /data 34 | WORKDIR /data 35 | VOLUME ["/data"] 36 | 37 | # Default command 38 | CMD ["/usr/bin/libreoffice"] 39 | -------------------------------------------------------------------------------- /libreoffice/Dockerfile.i18n: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | # Install Packages 6 | RUN echo '\ 7 | Package: hunspell-fr-classical\n\ 8 | Pin: version *\n\ 9 | Pin-Priority: -100\n\n\ 10 | Package: hunspell-fr-revised\n\ 11 | Pin: version *\n\ 12 | Pin-Priority: -100\n\n\ 13 | Package: hunspell-de-at-frami\n\ 14 | Pin: version *\n\ 15 | Pin-Priority: -100\n\n\ 16 | Package: hunspell-de-ch-frami\n\ 17 | Pin: version *\n\ 18 | Pin-Priority: -100\n\n\ 19 | Package: hunspell-de-de-frami\n\ 20 | Pin: version *\n\ 21 | Pin-Priority: -100\n'\ 22 | >> /etc/apt/preferences \ 23 | && cat /etc/apt/preferences \ 24 | && apt-get update \ 25 | && apt-get install -y \ 26 | sudo \ 27 | curl \ 28 | openjdk-17-jre \ 29 | "libreoffice-l10n-*" \ 30 | "libreoffice-help-*" \ 31 | "hunspell-*" \ 32 | "mythes-*" \ 33 | "hyphen-*" \ 34 | libreoffice \ 35 | && apt-get clean \ 36 | && rm -rf /var/lib/apt/lists/* 37 | 38 | # Configure Java Env. (see https://wiki.debian.org/LibreOffice#Java_Environment) 39 | ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64 40 | 41 | # FIXME: temporary disabled because of an error similar to this one: 42 | # https://github.com/hanya/MRI/issues/11 43 | 44 | # Install LanguageTool extension 45 | #RUN curl -s https://www.languagetool.org/download/LanguageTool-stable.oxt \ 46 | # > /tmp/LanguageTool.oxt \ 47 | #&& unopkg add --shared /tmp/LanguageTool.oxt \ 48 | #&& rm /tmp/LanguageTool.oxt 49 | 50 | # Default volume 51 | RUN mkdir /data 52 | WORKDIR /data 53 | VOLUME ["/data"] 54 | 55 | # Default command 56 | CMD ["/usr/bin/libreoffice"] 57 | -------------------------------------------------------------------------------- /libreoffice/README.md: -------------------------------------------------------------------------------- 1 | # LibreOffice image 2 | 3 | ## Overview 4 | Docker image including Libre Office (installed from the Debian package). 5 | 6 | ## Run Libre Office 7 | ```bash 8 | docker run --rm -it -v $(pwd):/home/office -v /tmp/.X11-unix:/tmp/.X11-unix \ 9 | -e DISPLAY=unix$DISPLAY olbat/libreoffice 10 | ``` 11 | 12 | ## Run Libre Office - Writer 13 | ```bash 14 | docker run --rm -it -v $(pwd):/home/office -v /tmp/.X11-unix:/tmp/.X11-unix \ 15 | -e DISPLAY=unix$DISPLAY olbat/libreoffice lowriter 16 | ``` 17 | 18 | ### Included package 19 | * libreoffice 20 | * libreoffice-l10n-fr 21 | * libreoffice-l10n-de 22 | * libreoffice-l10n-es 23 | * libreoffice-l10n-it 24 | * hunspell-en-gb 25 | * hunspell-en-us 26 | * hunspell-fr 27 | * hunspell-de-de 28 | * hunspell-es 29 | * hunspell-it 30 | * mythes-en-us 31 | * mythes-fr 32 | * mythes-de 33 | * mythes-es 34 | * mythes-it 35 | * hyphen-en-us 36 | * hyphen-en-gb 37 | * hyphen-fr 38 | * hyphen-de 39 | * hyphen-es 40 | * hyphen-it 41 | * openjdk-7-jre 42 | * sudo 43 | 44 | ### Included extensions 45 | * LanguageTool 46 | -------------------------------------------------------------------------------- /nodejs/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | ARG NODE_VERSION=20 6 | 7 | # Install Packages (basic and NodeJS development tools from upstream repository) 8 | RUN apt-get update \ 9 | && apt-get install -y curl gnupg \ 10 | && curl -s https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key \ 11 | > /etc/apt/trusted.gpg.d/nodesource-repo.asc \ 12 | && echo "deb http://deb.nodesource.com/node_${NODE_VERSION}.x nodistro main" \ 13 | > /etc/apt/sources.list.d/nodejs.list \ 14 | && apt-get update \ 15 | && apt-get install -y sudo git nodejs \ 16 | && apt-get clean \ 17 | && rm -rf /var/lib/apt/lists/* 18 | 19 | # Update npm to its latest version 20 | RUN npm install -g npm@latest 21 | 22 | # Add node user and disable sudo password checking 23 | RUN useradd \ 24 | --groups=sudo \ 25 | --create-home \ 26 | --home-dir=/home/node \ 27 | --shell=/bin/bash \ 28 | node \ 29 | && sed -i '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers 30 | 31 | # Setup environment 32 | USER node 33 | WORKDIR /home/node 34 | 35 | # Default shell 36 | CMD ["/bin/bash","--login","-i"] 37 | -------------------------------------------------------------------------------- /nodejs/README.md: -------------------------------------------------------------------------------- 1 | # Node.js image 2 | 3 | ## Overview 4 | Docker image including Node.js. 5 | 6 | ### Included package 7 | * nodejs 8 | -------------------------------------------------------------------------------- /pandoc/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:testing-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | RUN apt-get update \ 6 | && apt-get install -y \ 7 | pandoc \ 8 | texlive-latex-recommended \ 9 | texlive-latex-extra \ 10 | texlive-xetex \ 11 | texlive-luatex \ 12 | librsvg2-bin \ 13 | context \ 14 | wkhtmltopdf \ 15 | groff \ 16 | libjs-mathjax \ 17 | && apt-get clean \ 18 | && rm -rf /var/lib/apt/lists/* 19 | 20 | CMD ["/usr/bin/pandoc"] 21 | -------------------------------------------------------------------------------- /pandoc/README.md: -------------------------------------------------------------------------------- 1 | # Pandoc image 2 | 3 | ## Overview 4 | Docker image including Pandoc and dependencies to support additional formats (installed from the Debian package). 5 | 6 | ### Included package 7 | * pandoc 8 | * texlive-latex-recommended 9 | * texlive-latex-extra 10 | * require texlive-xetex 11 | * texlive-luatex 12 | * librsvg2-bin 13 | * context 14 | * wkhtmltopdf 15 | * groff 16 | * libjs-mathjax 17 | -------------------------------------------------------------------------------- /sak/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG MAINTAINER 2 | FROM debian:stable-slim 3 | MAINTAINER $MAINTAINER 4 | 5 | RUN apt-get update \ 6 | && apt-get install -y --no-install-recommends \ 7 | coreutils \ 8 | binutils \ 9 | findutils \ 10 | diffutils \ 11 | grep \ 12 | patch \ 13 | gawk \ 14 | bash \ 15 | levee \ 16 | xxd \ 17 | tar \ 18 | cpio \ 19 | zutils \ 20 | bzip2 \ 21 | lzip \ 22 | xz-utils \ 23 | file \ 24 | secure-delete \ 25 | inetutils-traceroute \ 26 | inetutils-ping \ 27 | netcat-openbsd \ 28 | ldnsutils \ 29 | openssl \ 30 | curl \ 31 | && apt-get clean \ 32 | && rm -rf /var/lib/apt/lists/* 33 | 34 | ENV LANG=C.UTF-8 \ 35 | LANGUAGE=C.UTF-8 \ 36 | LC_ALL=C.UTF-8 37 | 38 | CMD ["/bin/bash"] 39 | -------------------------------------------------------------------------------- /sak/README.md: -------------------------------------------------------------------------------- 1 | # Swiss Army Knife image 2 | 3 | ## Overview 4 | Docker image including a collection of Unix tools 5 | 6 | ### Included Debian packages 7 | * coreutils 8 | * binutils 9 | * findutils 10 | * diffutils 11 | * grep 12 | * patch 13 | * gawk 14 | * bash 15 | * levee 16 | * xxd 17 | * tar 18 | * cpio 19 | * zutils 20 | * bzip2 21 | * lzip 22 | * xz-utils 23 | * file 24 | * secure-delete 25 | * inetutils-traceroute 26 | * inetutils-ping 27 | * netcat-openbsd 28 | * ldnsutils 29 | * openssl 30 | * curl 31 | -------------------------------------------------------------------------------- /sak/gen-light.env: -------------------------------------------------------------------------------- 1 | BASEIMAGE="olbat/sak" 2 | EXECUTABLES="/bin/bash /bin/bzip2 /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/cp /bin/cpio /bin/date /bin/dd /bin/df /bin/dir /bin/echo /bin/false /bin/grep /bin/gzexe /bin/gzip /bin/ln /bin/login /bin/ls /bin/mkdir /bin/mknod /bin/mktemp /bin/mv /bin/nc /bin/ping /bin/ping6 /bin/pwd /bin/readlink /bin/rm /bin/rmdir /bin/sed /bin/sh /bin/sleep /bin/stty /bin/sync /bin/tar /bin/tempfile /bin/touch /bin/true /bin/umount /bin/uname /bin/vdir /usr/bin/[ /usr/bin/addr2line /usr/bin/ar /usr/bin/arch /usr/bin/awk /usr/bin/b2sum /usr/bin/base32 /usr/bin/base64 /usr/bin/basename /usr/bin/catchsegv /usr/bin/c++filt /usr/bin/chattr /usr/bin/chcon /usr/bin/cksum /usr/bin/clear /usr/bin/cmp /usr/bin/comm /usr/bin/c_rehash /usr/bin/csplit /usr/bin/curl /usr/bin/cut /usr/bin/diff /usr/bin/diff3 /usr/bin/dircolors /usr/bin/dirname /usr/bin/drill /usr/bin/du /usr/bin/elfedit /usr/bin/env /usr/bin/expand /usr/bin/expiry /usr/bin/expr /usr/bin/factor /usr/bin/file /usr/bin/find /usr/bin/fmt /usr/bin/fold /usr/bin/gprof /usr/bin/groups /usr/bin/head /usr/bin/hostid /usr/bin/iconv /usr/bin/id /usr/bin/install /usr/bin/join /usr/bin/ldd /usr/bin/link /usr/bin/locale /usr/bin/logname /usr/bin/lzip /usr/bin/md5sum /usr/bin/mkfifo /usr/bin/nice /usr/bin/nl /usr/bin/nm /usr/bin/nohup /usr/bin/nproc /usr/bin/numfmt /usr/bin/objcopy /usr/bin/objdump /usr/bin/od /usr/bin/openssl /usr/bin/paste /usr/bin/patch /usr/bin/pathchk /usr/bin/pinky /usr/bin/pldd /usr/bin/pr /usr/bin/printenv /usr/bin/printf /usr/bin/ptx /usr/bin/ranlib /usr/bin/readelf /usr/bin/realpath /usr/bin/reset /usr/bin/runcon /usr/bin/script /usr/bin/scriptreplay /usr/bin/sdiff /usr/bin/seq /usr/bin/sfill /usr/bin/sg /usr/bin/sha1sum /usr/bin/sha224sum /usr/bin/sha256sum /usr/bin/sha384sum /usr/bin/sha512sum /usr/bin/shred /usr/bin/shuf /usr/bin/size /usr/bin/sort /usr/bin/split /usr/bin/srm /usr/bin/stat /usr/bin/stdbuf /usr/bin/strings /usr/bin/strip /usr/bin/sum /usr/bin/tac /usr/bin/tail /usr/bin/tee /usr/bin/test /usr/bin/timeout /usr/bin/touch /usr/bin/tr /usr/bin/traceroute /usr/bin/truncate /usr/bin/tsort /usr/bin/tty /usr/bin/unexpand /usr/bin/uniq /usr/bin/unlink /usr/bin/users /usr/bin/vi /usr/bin/wc /usr/bin/whereis /usr/bin/which /usr/bin/who /usr/bin/whoami /usr/bin/xargs /usr/bin/xxd /usr/bin/xz /usr/bin/yes" 3 | SHARED_LIBRARIES="/lib/x86_64-linux-gnu/libnss_files.so.2" 4 | FILES="/etc/debian_version /etc/profile /etc/bash.bashrc /etc/passwd /etc/group /etc/shadow" 5 | -------------------------------------------------------------------------------- /sak/ignored.Dockerfile.light: -------------------------------------------------------------------------------- 1 | FROM olbat/sak AS base 2 | 3 | FROM scratch 4 | ARG MAINTAINER 5 | MAINTAINER $MAINTAINER 6 | 7 | COPY --from=base \ 8 | /bin/bash \ 9 | /bin/bzip2 \ 10 | /bin/cat \ 11 | /bin/chgrp \ 12 | /bin/chmod \ 13 | /bin/chown \ 14 | /bin/cp \ 15 | /bin/cpio \ 16 | /bin/date \ 17 | /bin/dd \ 18 | /bin/df \ 19 | /bin/dir \ 20 | /bin/echo \ 21 | /bin/false \ 22 | /bin/grep \ 23 | /bin/gzexe \ 24 | /bin/gzip \ 25 | /bin/ln \ 26 | /bin/login \ 27 | /bin/ls \ 28 | /bin/mkdir \ 29 | /bin/mknod \ 30 | /bin/mktemp \ 31 | /bin/mv \ 32 | /bin/nc \ 33 | /bin/ping \ 34 | /bin/ping6 \ 35 | /bin/pwd \ 36 | /bin/readlink \ 37 | /bin/rm \ 38 | /bin/rmdir \ 39 | /bin/sed \ 40 | /bin/sh \ 41 | /bin/sleep \ 42 | /bin/stty \ 43 | /bin/sync \ 44 | /bin/tar \ 45 | /bin/tempfile \ 46 | /bin/touch \ 47 | /bin/true \ 48 | /bin/umount \ 49 | /bin/uname \ 50 | /bin/vdir \ 51 | /usr/bin/[ \ 52 | /usr/bin/addr2line \ 53 | /usr/bin/ar \ 54 | /usr/bin/arch \ 55 | /usr/bin/awk \ 56 | /usr/bin/b2sum \ 57 | /usr/bin/base32 \ 58 | /usr/bin/base64 \ 59 | /usr/bin/basename \ 60 | /usr/bin/catchsegv \ 61 | /usr/bin/c++filt \ 62 | /usr/bin/chattr \ 63 | /usr/bin/chcon \ 64 | /usr/bin/cksum \ 65 | /usr/bin/clear \ 66 | /usr/bin/cmp \ 67 | /usr/bin/comm \ 68 | /usr/bin/c_rehash \ 69 | /usr/bin/csplit \ 70 | /usr/bin/curl \ 71 | /usr/bin/cut \ 72 | /usr/bin/diff \ 73 | /usr/bin/diff3 \ 74 | /usr/bin/dircolors \ 75 | /usr/bin/dirname \ 76 | /usr/bin/drill \ 77 | /usr/bin/du \ 78 | /usr/bin/elfedit \ 79 | /usr/bin/env \ 80 | /usr/bin/expand \ 81 | /usr/bin/expiry \ 82 | /usr/bin/expr \ 83 | /usr/bin/factor \ 84 | /usr/bin/file \ 85 | /usr/bin/find \ 86 | /usr/bin/fmt \ 87 | /usr/bin/fold \ 88 | /usr/bin/gprof \ 89 | /usr/bin/groups \ 90 | /usr/bin/head \ 91 | /usr/bin/hostid \ 92 | /usr/bin/iconv \ 93 | /usr/bin/id \ 94 | /usr/bin/install \ 95 | /usr/bin/join \ 96 | /usr/bin/ldd \ 97 | /usr/bin/link \ 98 | /usr/bin/locale \ 99 | /usr/bin/logname \ 100 | /usr/bin/lzip \ 101 | /usr/bin/md5sum \ 102 | /usr/bin/mkfifo \ 103 | /usr/bin/nice \ 104 | /usr/bin/nl \ 105 | /usr/bin/nm \ 106 | /usr/bin/nohup \ 107 | /usr/bin/nproc \ 108 | /usr/bin/numfmt \ 109 | /usr/bin/objcopy \ 110 | /usr/bin/objdump \ 111 | /usr/bin/od \ 112 | /usr/bin/openssl \ 113 | /usr/bin/paste \ 114 | /usr/bin/patch \ 115 | /usr/bin/pathchk \ 116 | /usr/bin/pinky \ 117 | /usr/bin/pldd \ 118 | /usr/bin/pr \ 119 | /usr/bin/printenv \ 120 | /usr/bin/printf \ 121 | /usr/bin/ptx \ 122 | /usr/bin/ranlib \ 123 | /usr/bin/readelf \ 124 | /usr/bin/realpath \ 125 | /usr/bin/reset \ 126 | /usr/bin/runcon \ 127 | /usr/bin/script \ 128 | /usr/bin/scriptreplay \ 129 | /usr/bin/sdiff \ 130 | /usr/bin/seq \ 131 | /usr/bin/sfill \ 132 | /usr/bin/sg \ 133 | /usr/bin/sha1sum \ 134 | /usr/bin/sha224sum \ 135 | /usr/bin/sha256sum \ 136 | /usr/bin/sha384sum \ 137 | /usr/bin/sha512sum \ 138 | /usr/bin/shred \ 139 | /usr/bin/shuf \ 140 | /usr/bin/size \ 141 | /usr/bin/sort \ 142 | /usr/bin/split \ 143 | /usr/bin/srm \ 144 | /usr/bin/stat \ 145 | /usr/bin/stdbuf \ 146 | /usr/bin/strings \ 147 | /usr/bin/strip \ 148 | /usr/bin/sum \ 149 | /usr/bin/tac \ 150 | /usr/bin/tail \ 151 | /usr/bin/tee \ 152 | /usr/bin/test \ 153 | /usr/bin/timeout \ 154 | /usr/bin/touch \ 155 | /usr/bin/tr \ 156 | /usr/bin/traceroute \ 157 | /usr/bin/truncate \ 158 | /usr/bin/tsort \ 159 | /usr/bin/tty \ 160 | /usr/bin/unexpand \ 161 | /usr/bin/uniq \ 162 | /usr/bin/unlink \ 163 | /usr/bin/users \ 164 | /usr/bin/vi \ 165 | /usr/bin/wc \ 166 | /usr/bin/whereis \ 167 | /usr/bin/which \ 168 | /usr/bin/who \ 169 | /usr/bin/whoami \ 170 | /usr/bin/xargs \ 171 | /usr/bin/xxd \ 172 | /usr/bin/xz \ 173 | /usr/bin/yes \ 174 | /bin/ 175 | 176 | COPY --from=base /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 177 | 178 | COPY --from=base \ 179 | /lib/x86_64-linux-gnu/libnss_files.so.2 \ 180 | /lib/ 181 | 182 | COPY --from=base \ 183 | /lib/x86_64-linux-gnu/libaudit.so.1 \ 184 | /lib/x86_64-linux-gnu/libbz2.so.1.0 \ 185 | /lib/x86_64-linux-gnu/libcap-ng.so.0 \ 186 | /lib/x86_64-linux-gnu/libcom_err.so.2 \ 187 | /lib/x86_64-linux-gnu/libcrypt.so.1 \ 188 | /lib/x86_64-linux-gnu/libc.so.6 \ 189 | /lib/x86_64-linux-gnu/libdl.so.2 \ 190 | /lib/x86_64-linux-gnu/libe2p.so.2 \ 191 | /lib/x86_64-linux-gnu/libgcc_s.so.1 \ 192 | /lib/x86_64-linux-gnu/libgpg-error.so.0 \ 193 | /lib/x86_64-linux-gnu/libkeyutils.so.1 \ 194 | /lib/x86_64-linux-gnu/liblzma.so.5 \ 195 | /lib/x86_64-linux-gnu/libm.so.6 \ 196 | /lib/x86_64-linux-gnu/libpam_misc.so.0 \ 197 | /lib/x86_64-linux-gnu/libpam.so.0 \ 198 | /lib/x86_64-linux-gnu/libpcre.so.3 \ 199 | /lib/x86_64-linux-gnu/libpthread.so.0 \ 200 | /lib/x86_64-linux-gnu/libreadline.so.8 \ 201 | /lib/x86_64-linux-gnu/libresolv.so.2 \ 202 | /lib/x86_64-linux-gnu/librt.so.1 \ 203 | /lib/x86_64-linux-gnu/libselinux.so.1 \ 204 | /lib/x86_64-linux-gnu/libtinfo.so.6 \ 205 | /lib/x86_64-linux-gnu/libutil.so.1 \ 206 | /lib/x86_64-linux-gnu/libz.so.1 \ 207 | /usr/lib/x86_64-linux-gnu/libacl.so.1 \ 208 | /usr/lib/x86_64-linux-gnu/libattr.so.1 \ 209 | /usr/lib/x86_64-linux-gnu/libbfd-2.35.2-system.so \ 210 | /usr/lib/x86_64-linux-gnu/libblkid.so.1 \ 211 | /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 \ 212 | /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 \ 213 | /usr/lib/x86_64-linux-gnu/libbsd.so.0 \ 214 | /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 \ 215 | /usr/lib/x86_64-linux-gnu/libctf-nobfd.so.0 \ 216 | /usr/lib/x86_64-linux-gnu/libctf.so.0 \ 217 | /usr/lib/x86_64-linux-gnu/libcurl.so.4 \ 218 | /usr/lib/x86_64-linux-gnu/libffi.so.7 \ 219 | /usr/lib/x86_64-linux-gnu/libgcrypt.so.20 \ 220 | /usr/lib/x86_64-linux-gnu/libgmp.so.10 \ 221 | /usr/lib/x86_64-linux-gnu/libgnutls.so.30 \ 222 | /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 \ 223 | /usr/lib/x86_64-linux-gnu/libhogweed.so.6 \ 224 | /usr/lib/x86_64-linux-gnu/libidn2.so.0 \ 225 | /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 \ 226 | /usr/lib/x86_64-linux-gnu/libkrb5.so.3 \ 227 | /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 \ 228 | /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 \ 229 | /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 \ 230 | /usr/lib/x86_64-linux-gnu/libldns.so.3 \ 231 | /usr/lib/x86_64-linux-gnu/libmagic.so.1 \ 232 | /usr/lib/x86_64-linux-gnu/libmd.so.0 \ 233 | /usr/lib/x86_64-linux-gnu/libmount.so.1 \ 234 | /usr/lib/x86_64-linux-gnu/libmpfr.so.6 \ 235 | /usr/lib/x86_64-linux-gnu/libnettle.so.8 \ 236 | /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 \ 237 | /usr/lib/x86_64-linux-gnu/libopcodes-2.35.2-system.so \ 238 | /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 \ 239 | /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 \ 240 | /usr/lib/x86_64-linux-gnu/libpsl.so.5 \ 241 | /usr/lib/x86_64-linux-gnu/librtmp.so.1 \ 242 | /usr/lib/x86_64-linux-gnu/libsasl2.so.2 \ 243 | /usr/lib/x86_64-linux-gnu/libsigsegv.so.2 \ 244 | /usr/lib/x86_64-linux-gnu/libssh2.so.1 \ 245 | /usr/lib/x86_64-linux-gnu/libssl.so.1.1 \ 246 | /usr/lib/x86_64-linux-gnu/libstdc++.so.6 \ 247 | /usr/lib/x86_64-linux-gnu/libtasn1.so.6 \ 248 | /usr/lib/x86_64-linux-gnu/libunistring.so.2 \ 249 | /lib/ 250 | 251 | COPY --from=base /etc/debian_version /etc/debian_version 252 | COPY --from=base /etc/profile /etc/profile 253 | COPY --from=base /etc/bash.bashrc /etc/bash.bashrc 254 | COPY --from=base /etc/passwd /etc/passwd 255 | COPY --from=base /etc/group /etc/group 256 | COPY --from=base /etc/shadow /etc/shadow 257 | 258 | CMD ["/bin/bash"] 259 | -------------------------------------------------------------------------------- /uglify/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_USER 2 | ARG MAINTAINER 3 | FROM ${BASE_USER}/nodejs 4 | MAINTAINER $MAINTAINER 5 | 6 | RUN sudo npm install -g uglify-js@3 7 | -------------------------------------------------------------------------------- /uglify/README.md: -------------------------------------------------------------------------------- 1 | # uglify image 2 | 3 | ## Overview 4 | Docker image including uglify (see [uglify](https://www.npmjs.com/package/uglify-js)). 5 | 6 | ### Included NPM packages 7 | * uglify-js@3 8 | 9 | ### Included package (from olbat/nodejs) 10 | * nodejs 11 | -------------------------------------------------------------------------------- /uncss/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_USER 2 | ARG MAINTAINER 3 | FROM ${BASE_USER}/nodejs 4 | MAINTAINER $MAINTAINER 5 | 6 | RUN sudo npm install -g uncss 7 | -------------------------------------------------------------------------------- /uncss/README.md: -------------------------------------------------------------------------------- 1 | # uncss image 2 | 3 | ## Overview 4 | Docker image including uncss (see [uncss](https://github.com/giakki/uncss)). 5 | 6 | ### Included NPM packages 7 | * uncss 8 | 9 | ### Included package (from olbat/nodejs) 10 | * nodejs 11 | --------------------------------------------------------------------------------