client/container: complete build overhaul, build optimizations #143

Merged
AaronFiore merged 0 commits from refs/pull/143/head into master 2024-09-23 02:33:20 +00:00
AaronFiore commented 2024-09-18 02:38:18 +00:00 (Migrated from gitea.com)

Description

Resolves long-standing pain-points that needed to be addressed before first candidate release.


  • Creates a separation of concerns for 'local' and 'remote' building

    • 'local' is built locally via the docker-finance build command
    • 'remote' is built outside of the docker-finance build command
      (pushed to a remote registry and then pulled by the 'local' build)
    • Related refactoring
      • Dockerfiles
      • lib_gen
  • Adds remote image 'hledger-suite'

    • Provides the latest versions of all hledger related binaries
    • No longer relies on package maintainers / out-dated packages
  • Adds remote image 'docker-finance'

    • Provides base image for 'finance' and 'dev-tools' images
      • tags 'archlinux' | 'ubuntu' | 'dev-tools'
  • Removes previous hledger related build modules

    • Removes building any hledger related binaries locally
  • Removes 'experimental' build

    • End-user can use local custom Dockerfile and/or custom tag instead
  • Updates the 'default' | 'slim' | 'tiny' | 'micro' build types

    • Refactors build type requirements into separate build modules
      • Adds 'fetch' module
      • Adds 'track' module
      • Adds 'user' module
        • creates container user after base and all other modules
        • allows for quick re-building across multiple local users
      • Updates 'root' module
    • lib_docker
      • Updates usage help
      • Adds build modules per build type
  • Huge optimizations

    • Vastly improves build times
      • ~60% faster w/ a fresh build
      • ~60%-90% faster rebuild (depending on image type)
    • Vastly improves image sizes
      • e.g., 'default' Arch Linux image size is ~50% smaller
  • Cleanup and clarify default generated custom Dockerfiles

  • Adds module-related dependency impl checks

  • Update manifest to latest implementation

Agreement

### Description Resolves long-standing pain-points that needed to be addressed before first candidate release. --- - Creates a separation of concerns for 'local' and 'remote' building * 'local' is built locally via the docker-finance `build` command * 'remote' is built *outside* of the docker-finance `build` command (pushed to a remote registry and then pulled by the 'local' build) * Related refactoring - Dockerfiles - `lib_gen` - Adds remote image 'hledger-suite' * Provides the latest versions of all `hledger` related binaries * No longer relies on package maintainers / out-dated packages - Adds remote image 'docker-finance' * Provides base image for 'finance' and 'dev-tools' images - tags 'archlinux' | 'ubuntu' | 'dev-tools' - Removes previous `hledger` related build modules * Removes building any `hledger` related binaries locally - Removes 'experimental' build * End-user can use local custom Dockerfile and/or custom tag instead - Updates the 'default' | 'slim' | 'tiny' | 'micro' build types * Refactors build type requirements into separate build modules - Adds 'fetch' module - Adds 'track' module - Adds 'user' module * creates container user *after* base and all other modules * allows for quick re-building across multiple local users - Updates 'root' module * `lib_docker` - Updates usage help - Adds build modules per build type - Huge optimizations * Vastly improves build times - ~60% faster w/ a fresh build - ~60%-90% faster rebuild (depending on image type) * Vastly improves image sizes - e.g., 'default' Arch Linux image size is ~50% smaller - Cleanup and clarify default generated custom Dockerfiles - Adds module-related dependency impl checks - Update manifest to latest implementation ### Agreement - [x] I have read and understood the [Development](https://gitea.com/EvergreenCrypto/docker-finance#development) and [License](https://gitea.com/EvergreenCrypto/docker-finance#license-and-disclaimer) documentation
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Reference: EvergreenCrypto/docker-finance#143