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

Add more build dependencies to the Docker build image #27677

Open
embray opened this issue Apr 16, 2019 · 7 comments
Open

Add more build dependencies to the Docker build image #27677

embray opened this issue Apr 16, 2019 · 7 comments

Comments

@embray
Copy link
Contributor

embray commented Apr 16, 2019

I noticed that the Docker build-from-clean jobs still build packages like zlib even though it can be avoided since the work done so far on#27330 so long as the correct system headers installed in the build container.

On one hand, while I think it's good to test full builds of Sage-the-distribution with all SPKGs enabled, I think that's more a job for the Buildbot fleet, whereas for Docker images we want to avoid as much overhead as possible.

For now the savings are small (just a few small libraries like zlib and libffi). But as we continue to make progress (e.g. with #27212) the savings will become more significant.

Thoughts?

CC: @saraedum @dimpase @dkrenn

Component: build

Issue created by migration from https://trac.sagemath.org/ticket/27677

@embray embray added this to the sage-8.8 milestone Apr 16, 2019
@saraedum
Copy link
Member

comment:1

build-from-clean is only called very rarely so it's not that important when looking at runtime. I guess that using system provided libraries might make the resulting image a bit smaller.

In any case, I agree that building everything from scratch is what the buildbots are good for. So removing things from build-from-clean appears to be a good idea.

@dkrenn
Copy link
Contributor

dkrenn commented Apr 16, 2019

Replying to @embray:

I noticed that the Docker build-from-clean jobs still build packages like zlib even though it can be avoided since the work done so far on#27330 so long as the correct system headers installed in the build container.

On one hand, while I think it's good to test full builds of Sage-the-distribution with all SPKGs enabled, I think that's more a job for the Buildbot fleet, whereas for Docker images we want to avoid as much overhead as possible.

Agreed.

For now the savings are small (just a few small libraries like zlib and libffi). But as we continue to make progress (e.g. with #27212) the savings will become more significant.

Yes, small(er) docker images are preferable, in particular, if this is kind of easily possible by using system libraries.

@embray
Copy link
Contributor Author

embray commented Apr 16, 2019

comment:3

Not that rarely though, and it will still save significant time in the long term.

I don't think it will make images much smaller, but certainly a little bit.

@embray
Copy link
Contributor Author

embray commented Jun 14, 2019

comment:4

As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9).

@embray embray removed this from the sage-8.8 milestone Jun 14, 2019
@embray
Copy link
Contributor Author

embray commented Jun 25, 2019

comment:5

If I understand correctly one problem we're having in the docker builds is that when running make build in the sagemath/sagemath-dev image more and more stuff over time has been getting rebuilt.

This seems to be directly related to #27330, as the packages getting rebuilt in the docker image are those that can now be used from the system. So it seems like, possibly, there is a bug (either in the build system, or in the Dockerfiles) causing these packages to be rebuilt (even if they were already built rather than using the system copies). Strange.

I think probably just using the system packages in the first place would avoid this, but that's not entirely clear either.

@saraedum
Copy link
Member

comment:6

embray: Last time I checked it was not packages being rebuilt but only documentation (rebuilds though no dependency appears to have changed.)

@mkoeppe mkoeppe added this to the sage-9.2 milestone Apr 25, 2020
@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Oct 24, 2020
@mkoeppe
Copy link
Member

mkoeppe commented May 10, 2021

comment:9

Moving to 9.4, as 9.3 has been released.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 May 10, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Aug 22, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Jan 10, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 May 3, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Sep 19, 2022
@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants