taskReproducible paper template - Tasks: task #15818, Debian-slim container and specific...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

task #15818: Debian-slim container and specific GCC .deb file on Zenodo

Submitted by:  Mohammad Akhlaghi <makhlaghi>
Submitted on:  Sun 22 Nov 2020 09:02:25 PM UTC  
 
Should Start On:  Sun 22 Nov 2020 12:00:00 AM UTC Should be Finished on:  Sun 22 Nov 2020 12:00:00 AM UTC
Category:  None Priority:  5 - Normal
Status:  None Privacy:  Public
Percent Complete:  0% Assigned to:  None
Open/Closed:  Open Effort:  0.00

Tue 01 Dec 2020 07:14:24 PM UTC, comment #1: 

About the second point below, I think the multi-staged build is not what I had in mind! After reading a little more about it, I think we want something like Docker's save feature.

For the debian-slim base, with GCC, G++ and WGET, the "saved" image (after being compressed) was 109Mb.

However, a "saved" image has to be loaded later, preserving all the sub-image (meta)data.

The thing I mainly had in mind about point 2 was being able to make something that can be put into Docker's 'FROM' directive in a Dockerfile, but with a URL (to zenodo).

Mohammad Akhlaghi <makhlaghi>
Project Administrator
Sun 22 Nov 2020 09:02:25 PM UTC, original submission:  

Building Maneage within a Docker image can simplify moving a built project from one computer to another immediately without having to built it from scratch. Therefore README.md has a special section to build the project in a Docker image.

However, currently README.md recommends to use the 'debian:stable-slim' image as its base. As mentioned throughout the Maneage paper, this changes all the frequently. Ideally that change should not cause any problem for Maneage, because Maneage builds everything itself (except for the C library, which will be done in task #15390).

The actual file that gets downloaded for the slim Debian is very small (27.11 Mb right now). So instead of relying on Dockerhub and its links to Debian's servers, we can just keep that file ourselves on Zenodo. That file can then be the recommended base image for building Maneage in a container. We can update it every few years (when Debian stable gets updated).

But to be able to build Maneage, we also need the Debian 'gcc', 'g++' and 'wget' packages. So the very top of our recommended Dockerfile looks something like this:

FROM debian:stable-slim
RUN apt-get update && apt-get install -y gcc g++ wget

I see two ways to do this:

1. In our archival, we can also store all the '.deb' files of these packages and their dependencies and use them instead of Debian's own server.

2. We build a new custom Docker image that blends in the slim image and the image with the compilers and wget into one core image and archives that on Zenodo (it shouldn't be larger than 300 Mb, and can be updated every 2 years!). I just had a fast search and apparently Docker supports this with its multistaged builds.

I currently prefer the second one because it is more simpler/cleaner for ourselves and the users (we will store the Dockerfile that is used to create it with the image). But please let me know what you think.

Mohammad Akhlaghi <makhlaghi>
Project Administrator

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by makhlaghi (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

     

     

    No changes have been made to this item

    Back to the top


    Powered by Savane 3.5