Jovykit adopts a layered construction strategy, organizing container images into multiple layers:
Base Layer: Contains core components such as the operating system, Python interpreter, and Jupyter Notebook/Lab server. This layer provides the minimal runnable environment, suitable for scenarios sensitive to image size.
Data Science Layer: Adds classic data science libraries like NumPy, Pandas, Matplotlib, and Scikit-learn on top of the base layer. This layer is suitable for traditional data analysis and statistical modeling tasks.
Deep Learning Layer: Further integrates deep learning frameworks such as TensorFlow, PyTorch, Keras, and their GPU support. This layer is oriented towards neural network training and inference tasks.
Domain-Specific Layer: Adds specialized tools and pre-trained models for specific fields (e.g., natural language processing, computer vision, reinforcement learning).
This layered design brings multiple benefits:
On-demand Selection: Users can choose the appropriate layer according to actual needs, avoiding installing unnecessary dependencies, reducing image size and startup time.
Inheritance and Reuse: Upper-layer images automatically inherit the content of lower-layer images, avoiding repeated construction and improving build efficiency.
Easy Maintenance: When base components need to be updated, only the base layer needs to be rebuilt, and upper-layer images can automatically get the updates.
Clear Dependencies: The layered structure clearly shows the dependency relationships between components, facilitating understanding and troubleshooting.