Skip to content
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

feat : use --no-cache-dir flag to pip in dockerfiles to save space #2357

Merged
merged 1 commit into from Mar 7, 2024

Conversation

Rajpratik71
Copy link
Contributor

using the "--no-cache-dir" flag in pip install, make sure downloaded packages by pip don't cache on the system. This is a best practice that makes sure to fetch from a repo instead of using a local cached one. Further, in the case of Docker Containers, by restricting caching, we can reduce image size. In terms of stats, it depends upon the number of python packages multiplied by their respective size. e.g for heavy packages with a lot of dependencies it reduces a lot by don't cache pip packages.

Further, more detailed information can be found at

https://medium.com/sciforce/strategies-of-docker-images-optimization-2ca9cc5719b6

Signed-off-by: Pratik Raj rajpratik71@gmail.com

@peace-maker
Copy link
Member

Thanks, the develop and travis images are meant for interactive testing and development though, so caching might be useful for those?

@peace-maker
Copy link
Member

Are we deleting temporary apt files yet?

@Rajpratik71
Copy link
Contributor Author

Are we deleting temporary apt files yet?

looks like, till now we are not doing. I will raise a separate PR for that.

@Rajpratik71
Copy link
Contributor Author

Thanks, the develop and travis images are meant for interactive testing and development though, so caching might be useful for those?

Caching will generally be helpful for all images in terms of reducing size.

I added the fix to all files to keep things uniform across files.

@peace-maker
Copy link
Member

I was talking about the purpose of the docker images. instead of just using pwntools to run exploits, they are meant to develop pwntools itself which includes touching the dependencies and possibly reinstalling pwntools too. So I thought it would be useful to keep pip's cache enabled for those images.

Do you think otherwise?

@Rajpratik71 Rajpratik71 force-pushed the optimization/pip-no-cache-dir branch from 732d1e5 to 69055e9 Compare March 6, 2024 15:46
using the "--no-cache-dir" flag in pip install, make sure downloaded packages by pip don't cache on the system. This is a best practice that makes sure to fetch from a repo instead of using a local cached one. Further, in the case of Docker Containers, by restricting caching, we can reduce image size. In terms of stats, it depends upon the number of python packages multiplied by their respective size. e.g for heavy packages with a lot of dependencies it reduces a lot by don't cache pip packages.

Further, more detailed information can be found at

https://medium.com/sciforce/strategies-of-docker-images-optimization-2ca9cc5719b6

Signed-off-by: Pratik Raj <rajpratik71@gmail.com>
@Rajpratik71 Rajpratik71 force-pushed the optimization/pip-no-cache-dir branch from 69055e9 to 6014228 Compare March 6, 2024 15:47
@Rajpratik71
Copy link
Contributor Author

I was talking about the purpose of the docker images. instead of just using pwntools to run exploits, they are meant to develop pwntools itself which includes touching the dependencies and possibly reinstalling pwntools too. So I thought it would be useful to keep pip's cache enabled for those images.

Do you think otherwise?

It makes sense, but we don't touch dependencies very often, so in most cases keeping the cache small will helped in terms of space, although I reverted for dev image.

Copy link
Member

@peace-maker peace-maker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, I guess I'm fine either way. I don't think optimizing the size of a local one-off dev environment is important. Thank you!

@peace-maker peace-maker merged commit 14c0d73 into Gallopsled:dev Mar 7, 2024
11 checks passed
@peace-maker
Copy link
Member

This saved about 40mb 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants