+ Apt install pacakges provided through 'APT_PACKAGES'

+Update readme
This commit is contained in:
RoboMagus
2022-02-12 11:20:01 +01:00
committed by RoboMagus
parent 413aa5129f
commit 289420531a
3 changed files with 27 additions and 21 deletions
+9 -21
View File
@@ -1,25 +1,13 @@
# Rsync - Docker mod for openssh-server
# APT Install - Universal Docker mod
This mod adds rsync to openssh-server, to be installed/updated during container start.
Using this mod you can install any package during starup by providing it through the environment variable `APT_PACKAGES`. This is then passed into the installation command as such: `apt install -y --no-install-recommends ${APT_PACKAGES}`.
In openssh-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:openssh-server-rsync`
In any docker container arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:universal-apt-install`
If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:openssh-server-rsync|linuxserver/mods:openssh-server-mod2`
If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:universal-apt-install|linuxserver/mods:universal-stdout-logs`
# Mod creation instructions
* Fork the repo, create a new branch based on the branch `template`.
* Edit the `Dockerfile` for the mod. `Dockerfile.complex` is only an example and included for reference; it should be deleted when done.
* Inspect the `root` folder contents. Edit, add and remove as necessary.
* Edit this readme with pertinent info, delete these instructions.
* Finally edit the `.github/workflows/BuildImage.yml`. Customize the build branch, and the vars for `BASEIMAGE` and `MODNAME`.
* Ask the team to create a new branch named `<baseimagename>-<modname>`. Baseimage should be the name of the image the mod will be applied to. The new branch will be based on the `template` branch.
* Submit PR against the branch created by the team.
## Tips and tricks
* To decrease startup times when multiple mods are used, we have consolidated `apt-get update` down to one file. As seen in the [nodejs mod](https://github.com/linuxserver/docker-mods/tree/code-server-nodejs/root/etc/cont-init.d)
* Some images has helpers built in, these images are currently:
* [Openvscode-server](https://github.com/linuxserver/docker-openvscode-server/pull/10/files)
* [Code-server](https://github.com/linuxserver/docker-code-server/pull/95)
For example, to install `rsync`, `git` and `nginx` add the following lines to your docker compose service:
```yaml
- DOCKER_MODS=linuxserver/mods:universal-apt-install
- APT_PACKAGES=rsync git nginx
```
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/with-contenv bash
if [ -f /usr/bin/apt ]; then
apt-get update
fi
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/with-contenv bash
# Exit if no installable packages are provided
if [ -z ${APT_PACKAGES+x} ]; then
echo "**** No APT packages to install ****"
exit 0
fi
if [ -f /usr/bin/apt ]; then
apt install -y --no-install-recommends ${APT_PACKAGES}
else
echo "!!! apt not found !!!"
fi