tree 988b202a282a4cb6a5866f411247b6226b4f13ce
parent c47ac48692a7fb48470107336c37419e57b0384c
author Thomas Orozco <thomas@orozco.fr> 1480968685 +0100
committer Thomas Orozco <thomas@orozco.fr> 1480969061 +0100

Upgrade Tini to 0.13.1

This upgrades Tini to 0.13.1 in order to fix a compatibility issue with
https://github.com/joyent/sdc-docker (see:
https://github.com/joyent/sdc-docker/issues/91). The fix itself was
provided by @geek of Joyent.

I've also made the Tini architecture more explicit (since Tini now also
supports ARM), so in case you decide to support additional architectures
in the future, the fix should be more obvious.

There isn't much functional difference between 0.9.0 (which you were
using) and 0.13.1, but here are a few notable changes you might care
about to some extent:

- Tini now supports a `-l` flag to show its license. This was useful
  from a compliance perspective for some users (so considering you're
  shipping Tini that might indirectly be useful to you!).
- Tini now supports a `--version` argument to show its version. This is
  here mostly because it's a little more intuitive than what was there
  before (you'd have to use `-h` to see the version).
- Tini now supports a `TINI_VERBOSITY` environment variable (should be
  an int), which can be convenient for debugging when Tini is used as an
  `ENTRYPOINT` (avoids the need to alter the entrypoint to configure
  it).
- Tini now uses more specific exit codes when it fails to fork (e.g.
  because the binary you're looking for doesn't exist, etc.).

Thanks for using Tini in this image!
