Commit Graph

23 Commits

Author SHA1 Message Date
221a5f7049 client: docker: add exec wrapper, update completion 2025-11-25 15:51:05 -08:00
9eca664dc8 client: docker/lib_docker: add update feature
Simply rebuilds image without cache because modules are built locally
(meaning, there's no "newer version" image of modules to pull against).
2025-10-07 11:46:27 -07:00
050d95b60b client: src: lib_docker: run: only allocate TTY when needed
Fixes running with client (host) cron.
2025-03-21 10:47:20 -07:00
ae2c08d5df client: src: lib_docker: filter docker related .in files
Creates a clutter-free finalized Dockerfile and docker-compose.yml by
removing all comments and blank lines.
2024-09-24 19:57:44 -07:00
0ec42d2420 client: rename $global_shell_file -> $global_superscript
Provides clarity, avoids confusion.
2024-09-23 17:31:11 -07:00
d8222c60fb client: src: refactor environment/gen handler
- Moves environment handling from `lib_gen` to `lib_env`
- Related refactoring
2024-09-22 19:35:22 -07:00
dc4990ab90 client: docker: complete build overhaul, optimize
This commit brings a complete overhaul of the build system:

- 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
2024-09-17 20:06:33 -07:00
bd3dec6a94 client: lib_docker: version: refactor to use yq
Replaces `shyaml` dependency with `yq`.
2024-08-17 23:19:57 -07:00
e9bd7f322f client: lib_docker: add USER/WORKDIR to finalize Dockerfile
Guarantees that any additions to custom Dockerfile (or a missing custom)
will not prevent bringing `up` a container into the correct environment.
2024-07-27 16:32:42 -07:00
7118a39f6d client: optimize/refactor repository path
- Reduces all calls into a single line
- Redefines path as root repository path
2024-07-18 22:57:31 -07:00
37fcba1586 client: lib_docker: build: use 'experimental' path 2024-07-16 17:44:17 -07:00
e11a142a86 client: lib_docker: version: refactor, print image name 2024-07-13 03:08:59 -07:00
bc7ebff2a1 client: lib_docker: factor env gen into lib_gen
- Related environment refactoring
2024-07-13 03:08:59 -07:00
4d3eef6067 client: new internal client versioning system
- Version is now determined on-the-fly from manifest file
- Internal versioning no longer depends on environment file
2024-07-13 03:01:06 -07:00
b00f4640df client: lib_docker: add build platform to version type=short 2024-07-12 21:18:58 -07:00
85a9cd8018 client: lib_docker: add 'type' arg to version
- Add `version` types (client | container | short | all)
- Related refactoring
2024-07-12 21:18:58 -07:00
48a7b7f798 client: lib_docker: add 'experimental' build type 2024-07-09 22:56:04 -07:00
69ef740bf1 client: lib_docker: factor out args parsers 2024-06-28 23:22:34 -07:00
593d586e6c client: lib_docker: implement build options 2024-06-28 17:30:36 -07:00
8eab0eb560 client: lib_docker: add edit option for custom Dockerfile 2024-06-26 14:58:22 -07:00
494e0c5402 client: lib_docker: append custom Dockerfile to final Dockerfile 2024-06-26 14:58:21 -07:00
dddd8a90a2 client: lib_docker: add CLI version for all platforms
Prints meaningful output of all dependencies and their respective versions.
2024-06-21 16:34:50 -07:00
b621e87df2 docker-finance | modern accounting for the power-user
Dedicated to Michael Morgan: a beautiful, beautiful soul.

---

Internal signing keys:

  Aaron Fiore (sole author)

    - 518A22F85BEFD32BCC99C48603F90C4F35E0213E
    - 31ECA5C347A0CC0815EDE730A3EACCFCDA7E685E
    - C8187C585CB07A4DA81CC0F37318B50EBE9C0DA8

Internal repositories (rebased from):

  Staging:

    $ git log -n1 --pretty=format:"%H"
    c8e0cd66f6c89fa7b3c62f72fb524a4cc454b7b6

    $ git rev-list --max-parents=0 HEAD
    ac3863b8c234755855f1aea3a07a853122decdf2

  Private:

    $ git log -n1 --pretty=format:"%H"
    69bb3591eaa2990a9637832bb484690e00c4f926

    $ git rev-list --max-parents=0 HEAD
    a5c1cc9fb593c4cf09bc0adfef6cb6d2964511ae
2024-03-08 23:42:21 -08:00