fresh/README.md

1.8 KiB

Fresh: Keeping your docker stacks up to date

Fresh was written to scratch an itch. It works by querying the respective repositories returning

Building

Build using NoccyLabs Pharlite:

$ tools/pharlite

Installing

Download the latest version (or build it yourself) and move it into /usr/bin.

Usage

To check for updates, pull updated images and recreate any containers defined in the docker-compose.yml in the current directory:

$ fresh.phar 

For all available options, use the --help flag.

Known Issues

  • There is currently no way to update the state when manually updating using the --check flag.
  • Only checks authenticated registries for new versions. But if you are using this you probably aren't using DockerHub anyway.

FAQ

  • How does Fresh remember the last seen hash? The container hashes are stored in the same directory as the docker-compose.yml file in a file named fresh.yml. Remove this file to force trigger an update.
  • What are these hashes? Fresh grabs the manifest for the image from the registry and proceeds to hash a concatenation of all the various build layer hashes. This should mean if the image is new but the layers are the same nothing will be updated.

Changes

0.1.1

  • Moved the logic from the entrypoint script to its own class.
  • Added locking (though fresh.lock lockfile) to prevent multiple instances.
  • Added --after hook to invoke script after update.
  • Disabled automatic flushing of the state to disk; --check will no longer update the state file, but --pull and default update will.

0.1.2

  • Fixed a bug in lockfile class preventing release of stale lockfile.
  • The --image option finally works.
  • Added a --write-state/-w option to write updated hashes to the state file.
  • Implemented --config and --config-typeoptions.