-
Notifications
You must be signed in to change notification settings - Fork 106
Minimum image #144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Good idea, something we will look to do soon |
I've tried to figure out the required packages below. Does anyone know why
|
@toastie89 - I can't see any reason ca-certs is required at all currently (but might be useful in scenarios like #154). Might have been a legacy requirement for when we built the wheels during image creation. I've just done a build without it and it seems to build fine (haven't tested the container, but I see no reason it should fail). The other thing we can do with a simple base image, is just build the feature-full image from the base image, reducing build time of any extensions. E.g. |
When implementing this, please try not to add yet another flavor folder to this repository. I'm speaking specifically about the git repository, not the published Docker images. I'd very much prefer having the compose file(s), a single .env.template and a single README at the to level of the repository. ProposalThis is to improve the current state, maybe as a first step before splitting a minimal version. docker-compose.ntfy.yml version: '3'
services:
borgmatic:
image: b3vis/borgmatic:${FLAVOR-ntfy}
volumes:
- ${VOLUME_NTFY-./data/nfty}:/root/.config/ntfy .env.template # you can only chose *one* of the flavors
# COMPOSE_FILE=docker-compose.yml:docker-compose.ntfy.yml # uncomment to use NTFY
# COMPOSE_FILE=docker-compose.yml:docker-compose.msmtp.yml # uncomment to use msmtp
# COMPOSE_FILE=docker-compose.yml:docker-compose.everything.yml # with coreutils, jq, whatever 😉
[...]
# for NTFY flavour only, uncomment if you don't want to use the default
# VOLUME_NTFY=./data/ntfy As a side effect, using default values for the ENV variables would also simplify adding features like VOLUME_BORGMATIC_STATE -- this change was needed in 3 compose files, but with the approach outlined above only in one. The referenced commit misses amending the three .env.template files which could been made superfluous by using a default value. Having only one template would also prevent mistakes like me adding the hint in the wrong env.template long time ago. 🙄 |
We should have gotten rid of ntfy and msmtp a while ago as they've long been replaced by apprise and are both redundant. I'd imagine there would be two images.
Scaling an env template for both minimal and standard would be easy to get into a single template as standard would just be an extension on top of base. Eg.
|
You're preaching to the converted/choir. I simply didn't know yet that ntfy/msmtp were deprecated. I didn't check the closed issues when coming back to this project after more than a year. Maybe this should be reflected in the Readme. As said, I'm talking about the repository layout. From the comment above, just replace docker-compose.ntfy.yml with docker-compose.extended.yml: version: '3'
services:
borgmatic:
image: b3vis/borgmatic:extended
... volumes etc. for extended And my request still stands: can we have both base and extended at the top level of the repository, please? I don't want to see two folders |
I hope you had a great Christmas break @grantbevis. I'm still postponing my upgrade from the mid-2021 version I'm currently running. Do you have an estimate on your big refactoring? I'd rather start over after the refactoring and not directly before it. |
@bb - Apologies I missed your previous comment. I have now merged my supercronic changes and the new image includes |
Thanks for coming back to this. I guess next steps for the repo are something like this: git rm msmtp
git rm ntfy
git mv base/* . Should I prepare a PR or do you want to go in a different direction? |
I will take a proper look and have a think @bb and work out how best to approach this. I want to keep it simple and have the |
P.S I wish to flatten the repo too so the |
I would prefer to have a rock solid base image to build upon without heavy db clients. Further when I use the image for PostgreSQL, I would want to install a client from the same release and not expect the client to be included. |
So we could achieve that with a |
Where are we at with this? I have a repo going locally where I've been playing around with this. I was wondering whether the default For the sake of simplicity and maintainability I would also only supply two flavours: |
This will probably be looked at once we look at removing the other images and unify things a bit more. @grantbevis and I have a timeline plan, but it'll be a couple of months before we do the rework as it'll affect most of the project including documentation etc, so we'll need to sit down and create a plan. |
Sounds good! Thanks! |
Hey guys, I've just raised #324 which means we can start work on this. There are two ways I can see this going:
Any other ideas? Option 2 is probably the sanest option, but does increase resource costs in terms of maintenance. |
An earlier fork of this project saved my files for years, and I'm grateful for the great work! Following the development, I've realized that this project and Borgmatic become too sophisticated for my use case. While I've initially planned to contribute a minimal version and started this issue, I've ended up running a cron-scheduled Borg in a container with some script to push status and stats to Prometheus. The work is available here, in case someone wants to make use of it. |
@toastie89 - Shall we close this ticket for now, and if you ever want to submit a minimal version, then we can revisit it? |
Sounds like a plan. |
My backup strategy highly relies on an older version of this fabulous container image. Over time many extra packages, such as curl, bash, bash completion, apprise or even clients for different databases have been included.
From a security standpoint I would feel much better if the container would only contain a minimum set of binaries, especially as it is running as root and has access to all my sensitive data. Further each extra layer adds complexity and possible failure which I would definitely want to avoid when it comes to backup.
I would love to see a minimum image which can be build upon. What do you think about?
The text was updated successfully, but these errors were encountered: