Repo2docker-action: Repo2Docker-Beispiel-Brainstorming

Erstellt am 18. Mai 2020  ·  5Kommentare  ·  Quelle: jupyterhub/repo2docker-action

Ich habe vor, die Dokumentation in diesem Repo noch etwas auszuarbeiten, um relevante Beispiele hinzuzufügen, die praktische Anwendungsfälle für die Verwendung von repo2docker veranschaulichen

  1. Lassen Sie Aktionen automatisch mit einem Binder-Badge zu einer PR kommentieren oder mit einem Chatops-Befehl, der dem in der PR referenzierten Zweig entspricht. Auf diese Weise können Prüfer einfach auf ein Live-Notizbuch zugreifen, um Notizbücher in der PR mit nur einem Klick zu überprüfen. Wird ungefähr so ​​aussehen:

    image

  2. Starten Sie Notizbücher automatisch, wenn ein PR geöffnet wird oder mit einem Chatops-Befehl auf dem Papierbereichsverlauf .

    Eine grobe Skizze ist in etwa so

    ...
      - name: build-environment
        id: repo2docker
        uses: machine-learning-apps/repo2docker-action
        with:
            DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
            DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
            IMAGE_NAME: "hamelsmu/repo2docker-test"
    
      - name: paperspace-deploy
        id: paperspace
        run: |
            pip install gradient
            gradient apiKey ${PAPERSPACE_TOKEN}
            gradient jobs create --container ${IMAGE_NAME} --projectId ${PAPERSPACE_PROJECT_ID} --machineType K80 --ports 8888:8888
        env:
            PAPERSPACE_TOKEN: ${{ secrets.PAPERSPACE_TOKEN }}
            PAPERSPACE_PROJECT_ID: ${{ secrets.PAPERSPACE_PROJECT_ID }}
            IMAGE_NAME: ${{ steps.repo2docker.outputs.IMAGE_SHA_NAME }}
    
    
  3. Starten Sie repo2docker-Images in den großen Clouds: GCP, AWS, Azure und vielleicht FloydHub

    Eine grobe Skizze sieht auf der GCP so aus – Google Cloud Functions

    ....
      - uses: exelban/gcloud<strong i="21">@master</strong>
        env:
            PROJECT_ID: ${{ secrets.GOOGLE_PROJECT_ID }}
            APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
            IMAGE_NAME: ${{ steps.repo2docker.outputs.IMAGE_SHA_NAME }}
        with:
            args: --quiet beta run deploy notebook-serve-action --allow-unauthenticated --platform managed --region us-west1 --image $IMAGE_NAME
    
  4. Beispiele mit Codespaces


Andere Ideen: TBD

@betatim , @willingc @neovintage weitere Ideen? Die Möglichkeiten sind so spannend, würde mich über eure Ideen und Gedanken freuen!

help wanted

Hilfreichster Kommentar

Folge dem Vorschlag von

Hat jemand andere Cloud-Anbieter oder Hosting-Dienste für Notebooks aus anderen Containern als Binder? Die benutzerfreundlichsten, die ich finden konnte, sind Paperspace und Google Cloud, die oben erwähnt wurden.

Es gibt andere trennscharfe Paradigmen, aber sie passen nicht immer gut zu Notebooks. Wäre cool, wenn die großen Clouds Binder-as-a-Service für private Anwendungsfälle anbieten würden.

In Bezug auf die Plugin-Idee ist dies sehr natürlich für die Funktionsweise von Aktionen und die Leute können einfach Aktionen stapeln, um den gewünschten Workflow zu erreichen. Ich könnte die Funktionalität "Notebook-Container in X bereitstellen" zu einer separaten Aktion machen, damit die Dinge modular bleiben ...

Alle 5 Kommentare

Der Befehl datasette publish [ code ] erstellt einen Container, der eine Datasette- Instanz enthält, und

Wäre es sinnvoll, so etwas entweder in dieser Aktion oder vielleicht als Teil repo2docker [@betatim] bereitzustellen.

Ich frage mich auch, ob dieses Veröffentlichungsrezept in eine andere Github-Aktion oder in einen repo2docker-Kontext extrahiert werden könnte, ein Plugin-Stil-Paket, das es ermöglichen würde, in andere Projekte übernommen zu werden? (Datasette nutzt bereits ein Plugin - Modell, zum Beispiel. (Hier sind @simonw ‚s erste Noten auf speccing ein Plugin - Modell aus.)

Folge dem Vorschlag von

Hat jemand andere Cloud-Anbieter oder Hosting-Dienste für Notebooks aus anderen Containern als Binder? Die benutzerfreundlichsten, die ich finden konnte, sind Paperspace und Google Cloud, die oben erwähnt wurden.

Es gibt andere trennscharfe Paradigmen, aber sie passen nicht immer gut zu Notebooks. Wäre cool, wenn die großen Clouds Binder-as-a-Service für private Anwendungsfälle anbieten würden.

In Bezug auf die Plugin-Idee ist dies sehr natürlich für die Funktionsweise von Aktionen und die Leute können einfach Aktionen stapeln, um den gewünschten Workflow zu erreichen. Ich könnte die Funktionalität "Notebook-Container in X bereitstellen" zu einer separaten Aktion machen, damit die Dinge modular bleiben ...

@hamelsmu Keine Unternehmensanwendung, aber es wäre großartig, so etwas in den GitHub-Klassenraum integriert anzubieten. Ein großer Anwendungsfall für binder ist die Durchführung kleinerer Workshops/Meetings/Tutorials mit Notebooks.

das wäre sooo cool! JupyterLab hat tatsächlich einen kleinen Bot, der Binder-Links zu ihren PRs hinzufügt, vielleicht lohnt es sich, sie zu fragen, wie es funktioniert, zB: https://github.com/jupyterlab/jupyterlab/pull/8410#issuecomment -626757346

@choldgraf Ich habe dafür schon etwas gemacht, das auf diesem Repo funktioniert, aber ich werde mal nachschauen, falls es da noch weitere Ideen gibt!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen