mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-07 18:14:05 +00:00
Fix some grammar issues
This commit is contained in:
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -124,5 +124,5 @@ body:
|
|||||||
label: Latest Docker version
|
label: Latest Docker version
|
||||||
description: You should try to use the latest Docker version
|
description: You should try to use the latest Docker version
|
||||||
options:
|
options:
|
||||||
- label: I've updated my Docker version to the latest available, and the issue still persists
|
- label: I've updated my Docker version to the latest available, and the issue persists
|
||||||
required: true
|
required: true
|
||||||
|
2
.github/actions/create-dev-env/action.yml
vendored
2
.github/actions/create-dev-env/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
name: Build environment
|
name: Build environment
|
||||||
description: Create build environment
|
description: Create a build environment
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
|
2
.github/actions/load-image/action.yml
vendored
2
.github/actions/load-image/action.yml
vendored
@@ -1,5 +1,5 @@
|
|||||||
name: Load Docker image
|
name: Load Docker image
|
||||||
description: Download image tar and load it to docker
|
description: Download the image tar and load it to Docker
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
image:
|
image:
|
||||||
|
4
.github/workflows/aarch64-setup.yml
vendored
4
.github/workflows/aarch64-setup.yml
vendored
@@ -2,7 +2,7 @@ name: Test aarch64-runner setup script
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# Weekly, at 03:00 on Monday UTC time
|
# Weekly, at 03:00 on Monday UTC
|
||||||
- cron: "0 3 * * 1"
|
- cron: "0 3 * * 1"
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
@@ -18,7 +18,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test-script:
|
test-script:
|
||||||
# The script itself is not aarch64 specific
|
# The script itself is not aarch64-specific
|
||||||
# It is easier to test on ubuntu-latest
|
# It is easier to test on ubuntu-latest
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
6
.github/workflows/contributed-recipes.yml
vendored
6
.github/workflows/contributed-recipes.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Test contributed recipes
|
name: Test the contributed recipes
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
@@ -33,7 +33,7 @@ jobs:
|
|||||||
run: docs/using/recipe_code/generate_matrix.py >> $GITHUB_OUTPUT
|
run: docs/using/recipe_code/generate_matrix.py >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
test-recipes:
|
test-recipes:
|
||||||
runs-on: ${{ matrix.runsOn }}
|
runs-on: ${{ matrix.runs-on }}
|
||||||
needs: generate-matrix
|
needs: generate-matrix
|
||||||
if: github.repository_owner == 'jupyter'
|
if: github.repository_owner == 'jupyter'
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build recipe 🛠
|
- name: Build recipe 🛠
|
||||||
# We're pulling here to avoid accidentally using image which migt be present on aarch64 self-hosted runner
|
# We're pulling here to avoid accidentally using an image that might be present on aarch64 self-hosted runner
|
||||||
run: docker build --pull --rm --force-rm --tag my-custom-image -f ./${{ matrix.dockerfile }} ./
|
run: docker build --pull --rm --force-rm --tag my-custom-image -f ./${{ matrix.dockerfile }} ./
|
||||||
env:
|
env:
|
||||||
DOCKER_BUILDKIT: 1
|
DOCKER_BUILDKIT: 1
|
||||||
|
14
.github/workflows/docker-build-test-upload.yml
vendored
14
.github/workflows/docker-build-test-upload.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Download parent image, build a new one and test it; then upload the image, tags and manifests to GitHub artifacts
|
name: Download a parent image, build a new one, and test it; then upload the image, tags, and manifests to GitHub artifacts
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: quay.io
|
REGISTRY: quay.io
|
||||||
@@ -7,7 +7,7 @@ env:
|
|||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
parentImage:
|
parent-image:
|
||||||
description: Parent image name
|
description: Parent image name
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
@@ -19,14 +19,14 @@ on:
|
|||||||
description: Image platform
|
description: Image platform
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
runsOn:
|
runs-on:
|
||||||
description: GitHub Actions Runner image
|
description: GitHub Actions Runner image
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-test-upload:
|
build-test-upload:
|
||||||
runs-on: ${{ inputs.runsOn }}
|
runs-on: ${{ inputs.runs-on }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repo ⚡️
|
- name: Checkout Repo ⚡️
|
||||||
@@ -47,14 +47,14 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Load parent built image to Docker 📥
|
- name: Load parent built image to Docker 📥
|
||||||
if: inputs.parentImage != ''
|
if: inputs.parent-image != ''
|
||||||
uses: ./.github/actions/load-image
|
uses: ./.github/actions/load-image
|
||||||
with:
|
with:
|
||||||
image: ${{ inputs.parentImage }}
|
image: ${{ inputs.parent-image }}
|
||||||
platform: ${{ inputs.platform }}
|
platform: ${{ inputs.platform }}
|
||||||
|
|
||||||
- name: Pull ubuntu:22.04 image 📥
|
- name: Pull ubuntu:22.04 image 📥
|
||||||
if: inputs.parentImage == ''
|
if: inputs.parent-image == ''
|
||||||
run: docker pull ubuntu:22.04
|
run: docker pull ubuntu:22.04
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
2
.github/workflows/docker-merge-tags.yml
vendored
2
.github/workflows/docker-merge-tags.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Download images tags from GitHub artifacts and create multi-platform manifests
|
name: Download all tags from GitHub artifacts and create multi-platform manifests
|
||||||
|
|
||||||
env:
|
env:
|
||||||
OWNER: ${{ github.repository_owner }}
|
OWNER: ${{ github.repository_owner }}
|
||||||
|
6
.github/workflows/docker-tag-push.yml
vendored
6
.github/workflows/docker-tag-push.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Download Docker image and its tags from GitHub artifacts, apply them and push the image to the Registry
|
name: Download a Docker image and its tags from GitHub artifacts, apply them and push the image to the Registry
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: quay.io
|
REGISTRY: quay.io
|
||||||
@@ -52,8 +52,8 @@ jobs:
|
|||||||
path: /tmp/jupyter/tags/
|
path: /tmp/jupyter/tags/
|
||||||
- name: Apply tags to the loaded image 🏷
|
- name: Apply tags to the loaded image 🏷
|
||||||
run: python3 -m tagging.apply_tags --short-image-name ${{ inputs.image }} --tags-dir /tmp/jupyter/tags/ --platform ${{ inputs.platform }} --registry ${{ env.REGISTRY }} --owner ${{ env.OWNER }}
|
run: python3 -m tagging.apply_tags --short-image-name ${{ inputs.image }} --tags-dir /tmp/jupyter/tags/ --platform ${{ inputs.platform }} --registry ${{ env.REGISTRY }} --owner ${{ env.OWNER }}
|
||||||
# This step is needed to prevent pushing non-multiarch "latest" tag
|
# This step is needed to prevent pushing non-multi-arch "latest" tag
|
||||||
- name: Remove "latest" tag from the image 🗑️
|
- name: Remove the "latest" tag from the image 🗑️
|
||||||
run: docker image rmi ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ inputs.image }}:latest
|
run: docker image rmi ${{ env.REGISTRY }}/${{ env.OWNER }}/${{ inputs.image }}:latest
|
||||||
|
|
||||||
- name: Push Images to Registry 📤
|
- name: Push Images to Registry 📤
|
||||||
|
94
.github/workflows/docker.yml
vendored
94
.github/workflows/docker.yml
vendored
@@ -1,18 +1,18 @@
|
|||||||
name: Build, test and push Docker Images
|
name: Build, test, and push Docker Images
|
||||||
|
|
||||||
# [FAST_BUILD] in the PR title makes this workflow only build
|
# [FAST_BUILD] in the PR title makes this workflow only build
|
||||||
# `jupyter/docker-stacks-foundation` and `jupyter/base-notebook`
|
# the `jupyter/docker-stacks-foundation` and `jupyter/base-notebook` images
|
||||||
# This allows to run CI faster if full build is not required
|
# This allows to run CI faster if a full build is not required
|
||||||
# This only works for `pull_request` event and has no effect on `push` to the `main` branch
|
# This only works for a `pull_request` event and does not affect `push` to the `main` branch
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# Weekly, at 03:00 on Monday UTC time
|
# Weekly, at 03:00 on Monday UTC
|
||||||
- cron: "0 3 * * 1"
|
- cron: "0 3 * * 1"
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- ".github/workflows/docker.yml"
|
- ".github/workflows/docker.yml"
|
||||||
# We use local reusable workflows to make architecture clean an simple
|
# We use local reusable workflows to make architecture clean and simple
|
||||||
# https://docs.github.com/en/actions/using-workflows/reusing-workflows
|
# https://docs.github.com/en/actions/using-workflows/reusing-workflows
|
||||||
- ".github/workflows/docker-build-test-upload.yml"
|
- ".github/workflows/docker-build-test-upload.yml"
|
||||||
- ".github/workflows/docker-merge-tags.yml"
|
- ".github/workflows/docker-merge-tags.yml"
|
||||||
@@ -57,7 +57,7 @@ on:
|
|||||||
|
|
||||||
# https://docs.github.com/en/actions/using-jobs/using-concurrency
|
# https://docs.github.com/en/actions/using-jobs/using-concurrency
|
||||||
concurrency:
|
concurrency:
|
||||||
# only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
|
# Only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
@@ -65,196 +65,196 @@ jobs:
|
|||||||
aarch64-foundation:
|
aarch64-foundation:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: ""
|
parent-image: ""
|
||||||
image: docker-stacks-foundation
|
image: docker-stacks-foundation
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
if: github.repository_owner == 'jupyter'
|
if: github.repository_owner == 'jupyter'
|
||||||
|
|
||||||
x86_64-foundation:
|
x86_64-foundation:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: ""
|
parent-image: ""
|
||||||
image: docker-stacks-foundation
|
image: docker-stacks-foundation
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
aarch64-base:
|
aarch64-base:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: docker-stacks-foundation
|
parent-image: docker-stacks-foundation
|
||||||
image: base-notebook
|
image: base-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-foundation]
|
needs: [aarch64-foundation]
|
||||||
if: github.repository_owner == 'jupyter'
|
if: github.repository_owner == 'jupyter'
|
||||||
|
|
||||||
x86_64-base:
|
x86_64-base:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: docker-stacks-foundation
|
parent-image: docker-stacks-foundation
|
||||||
image: base-notebook
|
image: base-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-foundation]
|
needs: [x86_64-foundation]
|
||||||
|
|
||||||
aarch64-minimal:
|
aarch64-minimal:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: base-notebook
|
parent-image: base-notebook
|
||||||
image: minimal-notebook
|
image: minimal-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-base]
|
needs: [aarch64-base]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-minimal:
|
x86_64-minimal:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: base-notebook
|
parent-image: base-notebook
|
||||||
image: minimal-notebook
|
image: minimal-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-base]
|
needs: [x86_64-base]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-scipy:
|
aarch64-scipy:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: minimal-notebook
|
parent-image: minimal-notebook
|
||||||
image: scipy-notebook
|
image: scipy-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-minimal]
|
needs: [aarch64-minimal]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-scipy:
|
x86_64-scipy:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: minimal-notebook
|
parent-image: minimal-notebook
|
||||||
image: scipy-notebook
|
image: scipy-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-minimal]
|
needs: [x86_64-minimal]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-r:
|
aarch64-r:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: minimal-notebook
|
parent-image: minimal-notebook
|
||||||
image: r-notebook
|
image: r-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-minimal]
|
needs: [aarch64-minimal]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-r:
|
x86_64-r:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: minimal-notebook
|
parent-image: minimal-notebook
|
||||||
image: r-notebook
|
image: r-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-minimal]
|
needs: [x86_64-minimal]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-julia:
|
aarch64-julia:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: minimal-notebook
|
parent-image: minimal-notebook
|
||||||
image: julia-notebook
|
image: julia-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-minimal]
|
needs: [aarch64-minimal]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-julia:
|
x86_64-julia:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: minimal-notebook
|
parent-image: minimal-notebook
|
||||||
image: julia-notebook
|
image: julia-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-minimal]
|
needs: [x86_64-minimal]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-tensorflow:
|
aarch64-tensorflow:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: scipy-notebook
|
parent-image: scipy-notebook
|
||||||
image: tensorflow-notebook
|
image: tensorflow-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-scipy]
|
needs: [aarch64-scipy]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-tensorflow:
|
x86_64-tensorflow:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: scipy-notebook
|
parent-image: scipy-notebook
|
||||||
image: tensorflow-notebook
|
image: tensorflow-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-scipy]
|
needs: [x86_64-scipy]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-datascience:
|
aarch64-datascience:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: scipy-notebook
|
parent-image: scipy-notebook
|
||||||
image: datascience-notebook
|
image: datascience-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-scipy]
|
needs: [aarch64-scipy]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-datascience:
|
x86_64-datascience:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: scipy-notebook
|
parent-image: scipy-notebook
|
||||||
image: datascience-notebook
|
image: datascience-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-scipy]
|
needs: [x86_64-scipy]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-pyspark:
|
aarch64-pyspark:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: scipy-notebook
|
parent-image: scipy-notebook
|
||||||
image: pyspark-notebook
|
image: pyspark-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-scipy]
|
needs: [aarch64-scipy]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-pyspark:
|
x86_64-pyspark:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: scipy-notebook
|
parent-image: scipy-notebook
|
||||||
image: pyspark-notebook
|
image: pyspark-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-scipy]
|
needs: [x86_64-scipy]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
aarch64-all-spark:
|
aarch64-all-spark:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: pyspark-notebook
|
parent-image: pyspark-notebook
|
||||||
image: all-spark-notebook
|
image: all-spark-notebook
|
||||||
platform: aarch64
|
platform: aarch64
|
||||||
runsOn: ARM64
|
runs-on: ARM64
|
||||||
needs: [aarch64-pyspark]
|
needs: [aarch64-pyspark]
|
||||||
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
if: github.repository_owner == 'jupyter' && !contains(github.event.pull_request.title, '[FAST_BUILD]')
|
||||||
|
|
||||||
x86_64-all-spark:
|
x86_64-all-spark:
|
||||||
uses: ./.github/workflows/docker-build-test-upload.yml
|
uses: ./.github/workflows/docker-build-test-upload.yml
|
||||||
with:
|
with:
|
||||||
parentImage: pyspark-notebook
|
parent-image: pyspark-notebook
|
||||||
image: all-spark-notebook
|
image: all-spark-notebook
|
||||||
platform: x86_64
|
platform: x86_64
|
||||||
runsOn: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [x86_64-pyspark]
|
needs: [x86_64-pyspark]
|
||||||
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
if: ${{ !contains(github.event.pull_request.title, '[FAST_BUILD]') }}
|
||||||
|
|
||||||
|
2
.github/workflows/registry-move.yml
vendored
2
.github/workflows/registry-move.yml
vendored
@@ -17,7 +17,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-overview:
|
update-overview:
|
||||||
# To be able to use latest skopeo
|
# To be able to use the latest skopeo
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
if: github.repository_owner == 'jupyter' || github.repository_owner == 'mathbunnyru'
|
if: github.repository_owner == 'jupyter' || github.repository_owner == 'mathbunnyru'
|
||||||
|
|
||||||
|
2
.github/workflows/sphinx.yml
vendored
2
.github/workflows/sphinx.yml
vendored
@@ -2,7 +2,7 @@ name: Build Sphinx Documentation and check links
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# Weekly, at 03:00 on Monday UTC time
|
# Weekly, at 03:00 on Monday UTC
|
||||||
- cron: "0 3 * * 1"
|
- cron: "0 3 * * 1"
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
|
@@ -91,7 +91,7 @@ more information is available in the [documentation](https://jupyter-docker-stac
|
|||||||
|
|
||||||
## Acknowledgments
|
## Acknowledgments
|
||||||
|
|
||||||
- Starting from `2023-10-31`, `aarch64` self-hosted runners are sponsored by amazing [`2i2c non-profit organization`](https://2i2c.org)
|
- Starting from `2023-10-31`, `aarch64` self-hosted runners are sponsored by an amazing [`2i2c non-profit organization`](https://2i2c.org)
|
||||||
|
|
||||||
## CPU Architectures
|
## CPU Architectures
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ more information is available in the [documentation](https://jupyter-docker-stac
|
|||||||
## Using old images
|
## Using old images
|
||||||
|
|
||||||
This project only builds one set of images at a time.
|
This project only builds one set of images at a time.
|
||||||
If you want to use the older `Ubuntu` and/or `python` version, you can use the following images:
|
If you want to use the older `Ubuntu` and/or `Python` version, you can use the following images:
|
||||||
|
|
||||||
| Build Date | Ubuntu | Python | Tag |
|
| Build Date | Ubuntu | Python | Tag |
|
||||||
| ------------ | ------ | ------ | -------------- |
|
| ------------ | ------ | ------ | -------------- |
|
||||||
|
@@ -24,9 +24,9 @@ Roughly speaking, we evaluate new features based on the following criteria:
|
|||||||
Is the feature generally applicable across domains?
|
Is the feature generally applicable across domains?
|
||||||
Does it work with JupyterLab, Jupyter Notebook, JupyterHub, etc.?
|
Does it work with JupyterLab, Jupyter Notebook, JupyterHub, etc.?
|
||||||
- **Fit with the image purpose**:
|
- **Fit with the image purpose**:
|
||||||
Does the feature match the theme of the stack in which it will be added?
|
Does the feature match the theme of the stack to which it will be added?
|
||||||
Would it fit better in a new community stack?
|
Would it fit better in a new community stack?
|
||||||
- **Complexity of build/runtime configuration**:
|
- **The complexity of build/runtime configuration**:
|
||||||
How many lines of code does the feature require in one of the Dockerfiles or startup scripts?
|
How many lines of code does the feature require in one of the Dockerfiles or startup scripts?
|
||||||
Does it require new scripts entirely?
|
Does it require new scripts entirely?
|
||||||
Do users need to adjust how they use the images?
|
Do users need to adjust how they use the images?
|
||||||
@@ -36,7 +36,7 @@ Roughly speaking, we evaluate new features based on the following criteria:
|
|||||||
- **Ability to support the addition**:
|
- **Ability to support the addition**:
|
||||||
Can existing maintainers answer user questions and address future build issues?
|
Can existing maintainers answer user questions and address future build issues?
|
||||||
Are the contributors interested in helping with long-term maintenance?
|
Are the contributors interested in helping with long-term maintenance?
|
||||||
Can we write tests to ensure the feature continues to work over time?
|
Can we write tests to ensure the feature continues to work over the years?
|
||||||
|
|
||||||
## Submitting a Pull Request
|
## Submitting a Pull Request
|
||||||
|
|
||||||
|
@@ -6,7 +6,7 @@ Each runner is recommended to have at least _2 cores_ and _30 GB_ of disk space.
|
|||||||
|
|
||||||
Add a new runner:
|
Add a new runner:
|
||||||
|
|
||||||
- To use [Oracle OCI](https://www.oracle.com/cloud/), create a compute instance `VM.Standard.A1.Flex` .
|
- To use [Oracle OCI](https://www.oracle.com/cloud/), create a compute instance `VM.Standard.A1.Flex`.
|
||||||
- To use [Google Cloud](https://cloud.google.com), use [this instruction](https://cloud.google.com/compute/docs/instances/create-arm-vm-instance#armpublicimage).
|
- To use [Google Cloud](https://cloud.google.com), use [this instruction](https://cloud.google.com/compute/docs/instances/create-arm-vm-instance#armpublicimage).
|
||||||
|
|
||||||
Configure your runner:
|
Configure your runner:
|
||||||
@@ -19,7 +19,7 @@ Configure your runner:
|
|||||||
|
|
||||||
This will perform the initial runner setup and create a user `runner-user` without `sudo` capabilities.
|
This will perform the initial runner setup and create a user `runner-user` without `sudo` capabilities.
|
||||||
|
|
||||||
2. Setup new GitHub Runner under `runner-user` using [GitHub Instructions](https://github.com/jupyter/docker-stacks/settings/actions/runners/new?arch=arm64&os=linux).
|
2. Set up a new GitHub Runner under `runner-user` using [GitHub Instructions](https://github.com/jupyter/docker-stacks/settings/actions/runners/new?arch=arm64&os=linux).
|
||||||
**Do not `./run.sh` yet**.
|
**Do not `./run.sh` yet**.
|
||||||
3. Run under `root`:
|
3. Run under `root`:
|
||||||
|
|
||||||
|
@@ -16,14 +16,14 @@ To build new images and publish them to the Registry, do the following:
|
|||||||
|
|
||||||
4. Avoid merging another PR to the main branch until all pending builds in the main branch are complete.
|
4. Avoid merging another PR to the main branch until all pending builds in the main branch are complete.
|
||||||
This way, you will know which commit might have broken the build
|
This way, you will know which commit might have broken the build
|
||||||
and also have the correct tags for moving tags (like the `python` version).
|
and also have the correct tags for moving tags (like the `Python` version).
|
||||||
|
|
||||||
## Updating Python version
|
## Updating Python version
|
||||||
|
|
||||||
When a new `Python` version is released, we wait for:
|
When a new `Python` version is released, we wait for:
|
||||||
|
|
||||||
- all the dependencies to be available (as wheels or in `conda-forge`).
|
- all the dependencies to be available (as wheels or in `conda-forge`).
|
||||||
- the first `python` patch release for this version.
|
- the first `Python` patch release for this version.
|
||||||
This allows us to avoid many bugs, which can happen in a major release.
|
This allows us to avoid many bugs, which can happen in a major release.
|
||||||
|
|
||||||
## Updating the Ubuntu Base Image
|
## Updating the Ubuntu Base Image
|
||||||
|
@@ -262,7 +262,7 @@ conda install --yes some-package && \
|
|||||||
fix-permissions "/home/${NB_USER}"
|
fix-permissions "/home/${NB_USER}"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Using alternative channels
|
### Using Alternative Channels
|
||||||
|
|
||||||
Conda is configured by default to use only the [`conda-forge`](https://anaconda.org/conda-forge) channel.
|
Conda is configured by default to use only the [`conda-forge`](https://anaconda.org/conda-forge) channel.
|
||||||
However, you can use alternative channels, either one-shot by overwriting the default channel in the installation command or by configuring `mamba` to use different channels.
|
However, you can use alternative channels, either one-shot by overwriting the default channel in the installation command or by configuring `mamba` to use different channels.
|
||||||
|
@@ -15,11 +15,11 @@ There are 2 types of data, which you might want to persist.
|
|||||||
To make it work, install this package in your inherited image and rerun `docker build` command.
|
To make it work, install this package in your inherited image and rerun `docker build` command.
|
||||||
```
|
```
|
||||||
|
|
||||||
2. If you want to persist user data (files created by you, like `python` scripts, notebooks, text files, and so on),
|
2. If you want to persist user data (files created by you, like `Python` scripts, notebooks, text files, and so on),
|
||||||
then you should use a
|
then you should use a
|
||||||
[Docker bind mount](https://docs.docker.com/storage/bind-mounts/) or
|
[Docker bind mount](https://docs.docker.com/storage/bind-mounts/) or
|
||||||
[Docker Volume](https://docs.docker.com/storage/volumes/).
|
[Docker Volume](https://docs.docker.com/storage/volumes/).
|
||||||
You can find [an example of using bind mount here](./running.md#example-2).
|
You can find [an example of using a bind mount here](./running.md#example-2).
|
||||||
There is also [a mount troubleshooting section](./troubleshooting.md#permission-denied-when-mounting-volumes) if you experience any issues.
|
There is also [a mount troubleshooting section](./troubleshooting.md#permission-denied-when-mounting-volumes) if you experience any issues.
|
||||||
|
|
||||||
## Why we do not add your favorite package
|
## Why we do not add your favorite package
|
||||||
|
@@ -12,8 +12,8 @@ def generate_matrix() -> dict[str, Any]:
|
|||||||
dockerfiles = sorted(file.name for file in THIS_DIR.glob("*.dockerfile"))
|
dockerfiles = sorted(file.name for file in THIS_DIR.glob("*.dockerfile"))
|
||||||
return {
|
return {
|
||||||
"dockerfile": dockerfiles,
|
"dockerfile": dockerfiles,
|
||||||
"runsOn": ["ubuntu-latest", "ARM64"],
|
"runs-on": ["ubuntu-latest", "ARM64"],
|
||||||
"exclude": [{"dockerfile": "oracledb.dockerfile", "runsOn": "ARM64"}],
|
"exclude": [{"dockerfile": "oracledb.dockerfile", "runs-on": "ARM64"}],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -140,7 +140,7 @@ subgidSize=$(( $(podman info --format "{{ range .Host.IDMappings.GIDMap }}+{{.Si
|
|||||||
|
|
||||||
This command pulls the `quay.io/jupyter/r-notebook` image tagged `2023-11-17` from Quay.io if it is not already present on the local host.
|
This command pulls the `quay.io/jupyter/r-notebook` image tagged `2023-11-17` from Quay.io if it is not already present on the local host.
|
||||||
It then starts a container running a Jupyter Server with the JupyterLab frontend and exposes the server on host port 10000.
|
It then starts a container running a Jupyter Server with the JupyterLab frontend and exposes the server on host port 10000.
|
||||||
The server logs appear in the terminal and include a URL to the server, but with the internal container port (8888) instead of the correct host port (10000).
|
The server logs appear in the terminal and include a URL to the server but with the internal container port (8888) instead of the correct host port (10000).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
podman run -it --rm -p 10000:8888 \
|
podman run -it --rm -p 10000:8888 \
|
||||||
@@ -188,5 +188,5 @@ instructions for the [dockerspawner](https://github.com/jupyterhub/dockerspawner
|
|||||||
## Using Other Tools and Services
|
## Using Other Tools and Services
|
||||||
|
|
||||||
You can use the Jupyter Docker Stacks with any Docker-compatible technology
|
You can use the Jupyter Docker Stacks with any Docker-compatible technology
|
||||||
(e.g., [Docker Compose](https://docs.docker.com/compose/), [docker-py](https://github.com/docker/docker-py), your favorite cloud container service).
|
(e.g., [Docker Compose](https://docs.docker.com/compose/), [docker-py](https://github.com/docker/docker-py), or your favorite cloud container service).
|
||||||
See the documentation of the tool, library, or service for details about how to reference, configure, and launch containers from these images.
|
See the documentation of the tool, library, or service for details about how to reference, configure, and launch containers from these images.
|
||||||
|
@@ -257,7 +257,7 @@ Whenever a docker image is pushed to the container registry, it is tagged with:
|
|||||||
```
|
```
|
||||||
|
|
||||||
For stability and reproducibility, you should either reference a date formatted
|
For stability and reproducibility, you should either reference a date formatted
|
||||||
tag from a date before the current date (in UTC time) or a git commit SHA older
|
tag from a date before the current date (in UTC) or a git commit SHA older
|
||||||
than the latest git commit SHA in the default branch of the
|
than the latest git commit SHA in the default branch of the
|
||||||
[jupyter/docker-stacks GitHub repository](https://github.com/jupyter/docker-stacks/).
|
[jupyter/docker-stacks GitHub repository](https://github.com/jupyter/docker-stacks/).
|
||||||
|
|
||||||
|
@@ -40,7 +40,7 @@ The following sections cover a few of these scenarios and how to fix them.
|
|||||||
You can change the ownership of the volume mount using the `chown` command.
|
You can change the ownership of the volume mount using the `chown` command.
|
||||||
In the case of the docker-stacks images, you can set the `CHOWN_EXTRA` and `CHOWN_EXTRA_OPTS` environment variables.
|
In the case of the docker-stacks images, you can set the `CHOWN_EXTRA` and `CHOWN_EXTRA_OPTS` environment variables.
|
||||||
|
|
||||||
For example, to change the ownership of the volume mount to the jovyan user (non-privileged default user in the Docker images):
|
For example, to change the ownership of the volume mount to the `jovyan` user (non-privileged default user in the Docker images):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# running in detached mode - can also be run in interactive mode
|
# running in detached mode - can also be run in interactive mode
|
||||||
@@ -128,7 +128,7 @@ The following sections cover a few of these scenarios and how to fix them.
|
|||||||
|
|
||||||
If you have also **created a new user**, you might be experiencing any of the following issues:
|
If you have also **created a new user**, you might be experiencing any of the following issues:
|
||||||
|
|
||||||
- `root` is the owner of `/home` or a mounted volume
|
- the `root` user is the owner of `/home` or a mounted volume
|
||||||
- when starting the container, you get an error such as `Failed to change ownership of the home directory.`
|
- when starting the container, you get an error such as `Failed to change ownership of the home directory.`
|
||||||
- getting permission denied when trying to `conda install` packages
|
- getting permission denied when trying to `conda install` packages
|
||||||
|
|
||||||
@@ -277,7 +277,7 @@ You can install packages from other conda channels (e.g. `bioconda`) by disablin
|
|||||||
conda install --no-channel-priority -c bioconda bioconductor-geoquery
|
conda install --no-channel-priority -c bioconda bioconductor-geoquery
|
||||||
```
|
```
|
||||||
|
|
||||||
Additional details are provided in the [Using alternative channels](../using/common.md#using-alternative-channels) section of the [Common features](common.md) page.
|
Additional details are provided in the [Using Alternative Channels](../using/common.md#using-alternative-channels) section of the [Common Features](common.md) page.
|
||||||
|
|
||||||
## Tokens are being rejected
|
## Tokens are being rejected
|
||||||
|
|
||||||
@@ -334,7 +334,7 @@ you might experience either of these issues when using any of the docker-stacks
|
|||||||
```
|
```
|
||||||
|
|
||||||
When the terminal provides the link to access Jupyter: <http://127.0.0.1:8888/lab?token=80d45d241a1ba4c2...>,
|
When the terminal provides the link to access Jupyter: <http://127.0.0.1:8888/lab?token=80d45d241a1ba4c2...>,
|
||||||
change the default port value of `8888` in the url to the port value mapped with the `docker run` command.
|
change the default port value of `8888` in the URL to the port value mapped with the `docker run` command.
|
||||||
|
|
||||||
In this example, we use 8001, so the edited link would be: <http://127.0.0.1:8001/lab?token=80d45d241a1ba4c2...>.
|
In this example, we use 8001, so the edited link would be: <http://127.0.0.1:8001/lab?token=80d45d241a1ba4c2...>.
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
The main purpose of the source code in this folder is to properly tag all the images and to update [build manifests](https://github.com/jupyter/docker-stacks/wiki).
|
The main purpose of the source code in this folder is to properly tag all the images and to update [build manifests](https://github.com/jupyter/docker-stacks/wiki).
|
||||||
These two processes are closely related, so the source code is widely reused.
|
These two processes are closely related, so the source code is widely reused.
|
||||||
|
|
||||||
A basic example of a tag is a `python` version tag.
|
A basic example of a tag is a `Python` version tag.
|
||||||
For example, an image `jupyter/base-notebook` with `python 3.10.5` will have a full image name `quay.io/jupyter/base-notebook:python-3.10.5`.
|
For example, an image `jupyter/base-notebook` with `python 3.10.5` will have a full image name `quay.io/jupyter/base-notebook:python-3.10.5`.
|
||||||
This tag (and all the other tags) are pushed to Quay.io.
|
This tag (and all the other tags) are pushed to Quay.io.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user