-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Reduce image size #20640
base: main
Are you sure you want to change the base?
Reduce image size #20640
Conversation
Do following actions to reduce the size of the generated images. - Change `COPY` command + `chown`/`chmod` command to `COPY` command + `--chown`/`--chmod` option. To prevent both files before/after `chown`/`chmod` commands from being recorded on different layers. - Put all `tdnf` commands in a single `RUN` command and move `tdnf clean all` command to the end. To prevent the `tdnf` cache from being recorded on a layer, and the `tdnf` database from being recorded on multiple layers. - Add `--link` option to `COPY` command. This does not contribute to image size reduction, but makes image building more efficient. - Move `chown /etc/pki/tls/certs` to the `Dockerfile.base`. This does not contribute to image size reduction, but is used in conjunction with `COPY --link` to make image building more efficient. The target images and their sizes are as follows. (The sizes are the value when built locally) - harbor-core : 185MB -> 118MB - harbor-db : 285MB -> 263MB - harbor-exporter : 108MB -> 79.1MB - harbor-jobservice : 159MB -> 105MB - harbor-registryctl : 160MB -> 104MB - redis-photon : 179MB -> 170 MB - standalone-db-migrator : 328MB -> 284MB Note that harbor-log, harbor-portal, and nginx-photon have almost no effect, and prepare is not directly executed by the user, so they are not included. Also, registry-photon and trivy-adapter-photon are not included, since PR#20622 and PR#20623 include equivalent action for these two, respectively. Signed-off-by: Mitsuru Kariya <mitsuru.kariya@nttdata.com>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #20640 +/- ##
===========================================
+ Coverage 45.36% 66.23% +20.86%
===========================================
Files 244 1045 +801
Lines 13333 113501 +100168
Branches 2719 2845 +126
===========================================
+ Hits 6049 75179 +69130
- Misses 6983 34211 +27228
- Partials 301 4111 +3810
Flags with carried forward coverage won't be shown. Click here to find out more. |
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.
nice discovery, thank your for your improvement.
Comprehensive Summary of your change
Do following actions to reduce the size of the generated images.
COPY
command +chown
/chmod
command toCOPY
command +--chown
/--chmod
option. To prevent both files before/afterchown
/chmod
commands from being recorded on different layers.tdnf
commands in a singleRUN
command and movetdnf clean all
command to the end. To prevent thetdnf
cache from being recorded on a layer, and thetdnf
database from being recorded on multiple layers.--link
option toCOPY
command. This does not contribute to image size reduction, but makes image building more efficient.chown /etc/pki/tls/certs
to theDockerfile.base
. This does not contribute to image size reduction, but is used in conjunction withCOPY --link
to make image building more efficient.The target images and their sizes are as follows. (The sizes are the value when built locally)
Note that harbor-log, harbor-portal, and nginx-photon have almost no effect, and prepare is not directly executed by the user, so they are not included.
Also, registry-photon and trivy-adapter-photon are not included, since PR #20622 and PR #20623 include equivalent action for these two, respectively.
Issue being fixed
Please indicate you've done the following: