Skip to content
  • Gilles Filippini's avatar
    [build] docker: add entrypoint script · fd0bbe67
    Gilles Filippini authored and Éloïs's avatar Éloïs committed
    First of all, this script moves the duniter configuration file 'conf.json'
    into the '/etc/duniter' volume, so that one could delete the '/var/lib/duniter'
    volume without losing the configuration.
    
    A symbolic link is set up into /var/lib/duniter/duniter_default to point to
    the new path:
     /var/lib/duniter/duniter_default/conf.json -> /etc/duniter/conf.json
    
    Then, this script enables the folowing environment variables:
    
    * DUNITER_MANUAL_CONFIG (boolean, default = false)
    
      When set to 'true' (or 'yes', or '1'), the script waits until the file
      '/etc/duniter/conf.json.orig' is present before starting the duniter
      service. Here is the workflow when enabled:
      1. wait for '/etc/duniter/conf.json.orig'
      2. if this file was changed since the previous startup:
        2.1. Save 'conf.json' to 'conf.json.old'
        2.2. Replace 'conf.json' with 'conf.json.orig'
        2.3. Save the new file's checksum to compare with at next startup
      3. continue the startup sequence
    
      When set to false, the startup sequence continues.
    
      Requires 'jq' to sort the files before comparing them.
    
    * DUNITER_AUTO_SYNC (boolean, default = false)
      Requires 'DUNITER_SYNC_HOST'.
    
      When set to 'true' (or 'yes', or '1') and the folder
      '/var/lib/duniter/duniter_default/data' doesn't exist, a 'duniter sync'
      command will be issued before starting the service.
    
      When set to false, the service is started directly.
    
    * DUNITER_SYNC_HOST (hostname, default = "")
    
      This is the 'host:port' parameter to use with 'duniter sync' when
      'DUNITER_AUTO_SYNC' is enabled.
    
      The synchronization won't be launched when the variable is not defined
      or empty.
    fd0bbe67