{"id":28012555,"url":"https://github.com/InseeFrLab/images-datascience","last_synced_at":"2025-05-09T23:02:58.379Z","repository":{"id":39610523,"uuid":"507014390","full_name":"InseeFrLab/images-datascience","owner":"InseeFrLab","description":"Collection of Docker images to build the data science catalog of the Onyxia project","archived":false,"fork":false,"pushed_at":"2025-05-05T09:35:30.000Z","size":653,"stargazers_count":29,"open_issues_count":9,"forks_count":26,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-05-05T10:38:43.358Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InseeFrLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-24T13:08:29.000Z","updated_at":"2025-05-02T09:34:53.000Z","dependencies_parsed_at":"2023-10-05T01:40:56.648Z","dependency_job_id":"90a840b3-a00e-47db-9014-0a793bb6fc9c","html_url":"https://github.com/InseeFrLab/images-datascience","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFrLab%2Fimages-datascience","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFrLab%2Fimages-datascience/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFrLab%2Fimages-datascience/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InseeFrLab%2Fimages-datascience/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InseeFrLab","download_url":"https://codeload.github.com/InseeFrLab/images-datascience/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253336910,"owners_count":21892797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-09T23:02:57.373Z","updated_at":"2025-05-09T23:02:58.352Z","avatar_url":"https://github.com/InseeFrLab.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"[![Build and push Docker images](https://github.com/InseeFrLab/images-datascience/actions/workflows/main-workflow.yml/badge.svg)](https://github.com/InseeFrLab/images-datascience/actions/workflows/main-workflow.yml)\n# images-datascience\nA collection of Docker images for ready-to-run datascience services.\n\nThey can be used alone but are designed to work with the [Onyxia](https://github.com/InseeFrLab/onyxia-web) ecosystem.\n\n## Conception\n\n4 layers:\n- base layer ubuntu and nvidia's ubuntu-cuda adding some base binaries \n- a layer to add on this base some python and R versions (currently, 2 different versions supported for each programming language)\n- a layer to add on this python and R images some coherent bundle experience classic datascience packages, spark,  tensorflow and pytorch \n- a layer to put on the top of that some ide like jupyter, rstudio or vscode\n\n```mermaid\n  graph LR;\n      B[base]:::base--\u003ePM[python-minimal]:::minimal;\n      B--\u003eRM[r-minimal]:::minimal;\n      PM--\u003ePYDS[python-datascience]:::package;\n      PM--\u003ePYSPARK[python-pyspark]:::package;\n      PM--\u003ePYTENSORFLOW[python-tensorflow]:::package;\n      PM--\u003ePYTORCH[python-pytorch]:::package;\n      RM--\u003eRDS[r-datascience]:::package;\n      RM--\u003eRSPARK[sparkr]:::package;\n      RM--\u003eRPYJU[r-python-julia]:::package;\n      PYSPARK--\u003e JPYSPARK[jupyter-pyspark]:::ide;\n      PYDS--\u003e JPYDS[jupyter-python]:::ide;\n      PYTENSORFLOW--\u003e JPYTENSORFLOW[jupyter-tensorflow]:::ide;\n      PYTORCH--\u003e JPYTORCH[jupyter-pytorch]:::ide;\n      PYSPARK--\u003e VSCODEPYSPARK[vscode-pyspark]:::ide;\n      PYDS--\u003e VSCODEPYDS[vscode-python]:::ide;\n      PYTENSORFLOW--\u003e VSCODEPYTENSORFLOW[vscode-tensorflow]:::ide;\n      PYTORCH--\u003e VSCODEPYTORCH[vscode-pytorch]:::ide;\n      RDS--\u003e JRDS[jupyter-r]:::ide;\n      RSPARK --\u003eRSTUDIOSPARKR[rstudio-sparkr]:::ide;\n      RDS--\u003e RSTUDIORDS[rstudio-r]:::ide;\n      RDS--\u003e VSCODER[vscode-r]:::ide;\n      RPYJU--\u003e JRPYJU[jupyter-r-python-julia]:::ide;\n      RPYJU--\u003e VSCODERPYJU[vscode-r-python-julia]:::ide;\n      classDef base fill:#d2f9ff,color:#000  ;\n      classDef minimal fill:#C1D5DF,color:#000;\n      classDef package fill:#3cb5f2 ,color:#000  ;\n      classDef ide fill:#0072d9  ;\n```\n\n\n## Environment variable\n\nList of environment variable you can use to pimp the container at init:\n\nIf helm chart support is checked, it means that environment variable behavior is supported in https://github.com/InseeFrLab/helm-charts-interactive-services\n\nIf Onyxia support is checked, it means that the Onyxia product could inject automatically the environment variable based on onyxia-web behavior or onyxia-api region configuration.\n\n\n|   environment variable   |   Example | Description |  helm chart support |   Onyxia support   |\n|---    |:-:    |:-:    |:-:    |:-:     |\n| PIP_REPOSITORY   | https://some.entreprise.mirror/repository/pypi-proxy/simple   | Configure an externally managed pip repository manager   | ✔️   | ✔️  |\n| R_REPOSITORY | https://some.entreprise.mirror/repository/cran   |  Configure an externally managed cran repository manager   |not yet (*)   | not yet  (*)   |\n| PATH_TO_CA_BUNDLE  | /etc/ssl/certs/ca-certificates.crt  | Configure a path to a ca bundle with autorities to support an auto-signed some.entreprise.mirror   | not yet (*)   | not yet (*)    |\n\n(*) For now you should inject this another way, contact on onyxia slack for some recipes depend of your context.\n\nThere is multiple recipes:\n\n**Your user has non root capabilities:**\n- use an init script : https://github.com/InseeFrLab/images-datascience/blob/main/scripts/onyxia-init.sh#L7\n- you can use an init region script location injected by Onyxia with a curl to an endpoint with your certiticates and put it in a path let's say /tmp/ca-certificates:\n- put this path in env variable PATH_TO_CABUNDLE then onyxia-init.sh script will configure git and pip to user this certificates.\n\n```\nrunAsNonRoot: true\nallowPrivilegeEscalation: false\n```\n**Your user have root capabilities:**\n- you can do the same but also point on system bundle doing an appropriate update-ca-certificates in your region script.\n\n**Other recipes out of the scope of onyxia :**\n- kubernetes injection: you rely on some kubernetes global certificate injection then use kyverno/gatekeeper to enforce PATH_TO_CABUNDLE to the injected path.\n  - soon PATH_TO_CA_BUNDLE will be an injected field of the onyxia region.\n\n- rebuild of images just to add certificates: you can also rebuild the images in your entreprise just to add ca certificates with this same recipe relying on a PATH_TO_CABUNDLE.\n\nAs far as we know, if you target a non root environment with custom authorities bundle in the system store, onyxia can't do this you should rely on this kind of recipes out of the scope of onyxia.\n\n**full onyxia recipe:**\n\nNot developped yet we have 2 paths at least:\n- onyxia-api could show an endpoint like https://onyxiaurl/public/certs and let the onyxia-init.sh curl the certs in PATH_TO_CABUNDLE path.\n- we cloud also rely on a field on the region https://github.com/InseeFrLab/onyxia-api/blob/master/docs/region-configuration.md#certificateauthorityinjection-properties to let the encodedbase64 list of certificates going thrown the ui and be injected to puopulate a configmap and inject this certificates in a PATH_TO_CABUNDLE directory.\n\n\n## Freshness and rebuild\n\nA new set of images are built every monday at 02:00.\n\n## Governance references\n\n- [GOVERNANCE.md](https://github.com/InseeFrLab/onyxia/blob/main/GOVERNANCE.md)\n- [CODE_OF_CONDUCT.md](https://github.com/InseeFrLab/onyxia/blob/main/CODE_OF_CONDUCT.md)\n- [ROADMAP.md](https://github.com/InseeFrLab/onyxia/blob/main/ROADMAP.md)\n- [SECURITY.md](https://github.com/InseeFrLab/onyxia/blob/main/SECURITY.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInseeFrLab%2Fimages-datascience","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FInseeFrLab%2Fimages-datascience","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FInseeFrLab%2Fimages-datascience/lists"}