-
Notifications
You must be signed in to change notification settings - Fork 641
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
Fix and optimize generator Docker image building #1045
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* new `REPO_TAG` variable can be used to specify the tag/branch to use for a build * the Makefile default is to use the branch of the current repository `HEAD` * the Dockerfile default (if building manually with Docker) is `main` * updated CircleCI configuration to apply the correct `REPO_TAG` values Signed-off-by: Hugo Hromic <hhromic@gmail.com>
* use multi-stage build to reduce final image size * ensure to use the same Debian version (`bookworm`) for the builder and final images * use `--no-install-recommends` to reduce unnecessary dependency downloads * removed unnecessary `unzip` dependency in the image * use modern syntax (using equal sign) for `ENV` Dockerfile directive Signed-off-by: Hugo Hromic <hhromic@gmail.com>
SuperQ
approved these changes
Nov 21, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense, thanks for all the debugging of this build process.
SuperQ
added a commit
that referenced
this pull request
Nov 24, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782 * [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828 * [FEATURE] Add a scaling factor #1026 * [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028 * [FEATURE] Add an offset factor #1029 * [BUGFIX] Fix and optimize generator Docker image building #1045 snmp.yml changes: * Override `bsnAPName` to DisplayString #660 * Import TP-Link EAP MIB #833 * Updated Mikrotik neighbor indexes make them unique #986 * Update PowerNet MIB to v4.5.1 #1003 * Refactor HOST-RESOURCES-MIB #1027 * Update keepalived MIB files to latest version #1044 Signed-off-by: SuperQ <superq@gmail.com>
Merged
SuperQ
added a commit
that referenced
this pull request
Nov 26, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782 * [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828 * [FEATURE] Add a scaling factor #1026 * [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028 * [FEATURE] Add an offset factor #1029 * [BUGFIX] Fix and optimize generator Docker image building #1045 snmp.yml changes: * Override `bsnAPName` to DisplayString #660 * Import TP-Link EAP MIB #833 * Updated Mikrotik neighbor indexes make them unique #986 * Update PowerNet MIB to v4.5.1 #1003 * Refactor HOST-RESOURCES-MIB #1027 * Update keepalived MIB files to latest version #1044 Signed-off-by: SuperQ <superq@gmail.com>
SuperQ
added a commit
that referenced
this pull request
Dec 6, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782 * [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828 * [FEATURE] Add a scaling factor #1026 * [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028 * [FEATURE] Add an offset factor #1029 * [BUGFIX] Fix and optimize generator Docker image building #1045 snmp.yml changes: * Override `bsnAPName` to DisplayString #660 * Import TP-Link EAP MIB #833 * Updated Mikrotik neighbor indexes make them unique #986 * Update PowerNet MIB to v4.5.1 #1003 * Refactor HOST-RESOURCES-MIB #1027 * Update keepalived MIB files to latest version #1044 Signed-off-by: SuperQ <superq@gmail.com>
SuperQ
added a commit
that referenced
this pull request
Dec 10, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782 * [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828 * [FEATURE] Add a scaling factor #1026 * [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028 * [FEATURE] Add an offset factor #1029 * [BUGFIX] Fix and optimize generator Docker image building #1045 snmp.yml changes: * Override `bsnAPName` to DisplayString #660 * Import TP-Link EAP MIB #833 * Updated Mikrotik neighbor indexes make them unique #986 * Update PowerNet MIB to v4.5.1 #1003 * Refactor HOST-RESOURCES-MIB #1027 * Update keepalived MIB files to latest version #1044 Signed-off-by: SuperQ <superq@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements a fix and an optimization to the generator Docker image building as described below.
To facilitate review, these two improvements were implemented in two separate commits.
REPO_TAG
variable can be used to specify the tag/branch to use for a buildHEAD
main
REPO_TAG
valuesbookworm
) for the builder and final images--no-install-recommends
to reduce unnecessary dependency downloadsunzip
dependency in the imageENV
Dockerfile directiveThe first commit addresses the problem that the Docker images for the generator currently always use the latest tagged version in the repository, instead of the latest commit of the branch pointed by the Docker image tag. This comit now allows to build Docker images for the generator using any tag or branch, no matter which tag is latest in the repository.
The most evident issue of the above is that the
prom/snmp-generator:main
image in Docker Hub (and also the corresponding image in Quay.io) actually contains thegenerator
binary for the latest tagv0.24.1
instead of a binary generated from the latestmain
branch as suggested by the image tag.I spent some signifcant time trying to figure out why a newly built image of the generator was unable to process the current
generator.yml
configuration file in themain
branch until I realized that the Dockerfile is fixed to@latest
. This PR now allows the generator to work out of the box as shown below.At the time of this writing, if you try to run
make docker-generate
, it fails because thegenerator
binary in the builtprom/snmp-generator:main
image does not understand the latest changes done in themain
branch since the latest tag:With this PR, the binary in the image is actually built from the
main
branch and it works as expected:The second commit optimizes the Docker image size by using a multi-stage build and removing unnecessary dependencies.
Image sizes before and after the optimization:
I hope you consider these improvements and let me know if you have any concerns.
If you simply don't want to include these changes, feel free to drop this PR. No worries.