-
Notifications
You must be signed in to change notification settings - Fork 105
Issue #953: add MAKEFLAGS="-j4"
to RStudio Dockerfiles for parallel compilation
#1395
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
base: main
Are you sure you want to change the base?
Changes from 8 commits
0097a87
88208f8
c87b0f0
adae6bf
a8eb8ee
0d299d5
94e9442
6ef483d
394d58a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -67,6 +67,7 @@ RUN if [ -d "${SECRET_DIR}" ]; then \ | |
fi | ||
|
||
ENV R_VERSION=4.4.3 | ||
ENV MAKEFLAGS="-j2" | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove superfluous quotes – current value breaks
-ENV MAKEFLAGS="-j2"
+ENV MAKEFLAGS=-j2 Apply the same fix to every Dockerfile touched in this PR to avoid build-time failures. 🤖 Prompt for AI Agents
|
||
# Install R | ||
RUN yum install -y yum-utils && \ | ||
|
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.
@coderabbitai the benefits on dockerfile buildtime are small, suggest ways to speed up
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.
@jiridanek Looking at the RStudio Dockerfile, I can suggest several optimization strategies that would likely provide more significant build time improvements than the MAKEFLAGS change:
Layer Caching Optimizations
1. Consolidate Package Operations
2. Move Stable Dependencies Earlier
Build Context Optimizations
3. Use .dockerignore
# Create .dockerignore to exclude unnecessary files *.md .git/ .github/ test/ docs/ *.log
4. Multi-stage Build Improvements
Network and Download Optimizations
5. Pre-download Large Assets
6. Use Package Manager Caching
Build-time Performance
7. Parallel R Package Installation
# In install_packages.R, use parallel installation options(Ncpus = parallel::detectCores())
8. Use BuildKit Cache Mounts
Specific to This Dockerfile
9. Optimize Permission Changes
10. Use Faster Base Images
Consider using images with more packages pre-installed or create a custom base image for RStudio builds.
The most impactful optimizations would likely be:
Would you like me to create a GitHub issue to track these Docker build optimization improvements?
ᕱ⁾⁾ᕱ thoughtful about build optimization strategies
🧠 Learnings used