Skip to content
Closed
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
5f751d3
Dockerfiles added
Helion55 Feb 1, 2025
48bcb2d
workflow updated for docker setup
Helion55 Feb 1, 2025
d5c0387
added documention and rfd from docker repo
Helion55 Feb 1, 2025
6bda9fd
Update .pre-commit-config.yaml from docker repo
Helion55 Feb 1, 2025
c9710cb
Merge branch 'main' into main
dcmcand Feb 7, 2025
a94a2c2
Added Readme.md from the docker repository
Helion55 Feb 7, 2025
9d3fe5d
Merge branch 'main' into main
Helion55 Feb 8, 2025
99fe60a
Update install-conda-environment.sh
Helion55 Feb 11, 2025
3251349
Merge branch 'main' into main
dcmcand Feb 20, 2025
d23853b
Removed .github/workflows/build-push-docker.yaml
Helion55 Apr 23, 2025
7ec2f06
Removed .github/workflows/test-images.yaml
Helion55 Apr 23, 2025
a70c4e3
Merge branch 'nebari-dev:main' into main
Helion55 Jun 16, 2025
e398daf
Update jupiterhub environment.yaml to 5.3.0
Helion55 Jun 20, 2025
740ecbe
Delete docker/jupyterlab/apt.txt
Helion55 Jun 20, 2025
8bd4511
Upgrade JupyterHub to 5.3.0
Helion55 Jun 20, 2025
51ed4c2
Delete docker/nebari-workflow-controller/apt.txt
Helion55 Jun 20, 2025
f5d32a8
Update install-code-server.sh from optimize dockerfile (#211) commit
Helion55 Jun 20, 2025
0c1bd93
Update install-code-server.sh from optimize dockerfile (#211) commit
Helion55 Jun 20, 2025
41e851a
Update install-conda.sh from optimize dockerfile (#211) commit
Helion55 Jun 20, 2025
82ec35a
Update install-code-server.sh from optimize dockerfile (#211) commit
Helion55 Jun 20, 2025
1844d7d
Delete docker/scripts/install-apt-minimal.sh
Helion55 Jun 20, 2025
d6730bf
Delete docker/scripts/install-apt.sh
Helion55 Jun 20, 2025
7ca9de4
Delete docker/Dockerfile.dask-worker
Helion55 Jun 20, 2025
d9e352f
Delete docker/Dockerfile.jupyterhub
Helion55 Jun 20, 2025
686d04a
Delete docker/Dockerfile.jupyterlab
Helion55 Jun 20, 2025
d2ec3ec
Delete docker/Dockerfile.workflow-controller
Helion55 Jun 20, 2025
02f9a79
Created Dockerfile from Update base images to use Ubuntu 24.04 (#213)
Helion55 Jun 20, 2025
4a91c3e
Created makefile from optimize dockerfile (#211) commit
Helion55 Jun 20, 2025
5b87da4
Updated README.md from optimize dockerfile (#211) commit
Helion55 Jun 20, 2025
2457d6a
Created build_push_docker.yaml from Update base images to use Ubuntu…
Helion55 Jun 20, 2025
358c8d0
Create test_images.yaml from Update base images to use Ubuntu 24.04 (…
Helion55 Jun 20, 2025
f7a5650
Created docker_trivy.yaml from Set up Trivy config scanning for Docke…
Helion55 Jun 20, 2025
b71ceab
Delete .github/ISSUE_TEMPLATE/RFD.md
Helion55 Jul 1, 2025
547f932
Merge branch 'main' into main
Helion55 Jul 1, 2025
02bb87a
Merge branch 'main' into main
viniciusdc Jul 23, 2025
916b891
Merge branch 'nebari-dev:main' into main
Helion55 Oct 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/ISSUE_TEMPLATE/RFD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
Copy link
Contributor

@viniciusdc viniciusdc Jun 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These template files are not needed

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @viniciusdc, is it fine now?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, thanks! I need to take a closer look at what we need to do internally to make this all work from here. I haven't had the time to do so yet, but I plan to check this later today or tomorrow, or next Wednesday.

name: "Request for Discussion (RFD) 💬"
about: Open discussion about a feature or design project in Nebari.
labels:
- "type: RFD"
title: "RFD - Title"
---

<!-- Example of when and how to create a RFD or RFC (request for comments) -->
<!-- https://gitpod.notion.site/Decision-Making-RFCs-eb4a57f3a34f40f1afbd95e05322af70 -->

<!-- Use this guide to set the status: Draft 🚧 / Open for comments 💬/ Accepted ✅ /Implemented 🚀/ Obsolete 🗃 -->

| Status | Draft 🚧 / Open for comments 💬/ Accepted ✅ /Implemented 🚀/ Obsolete 🗃 |
| ----------------- | ------------------------------------------------------------------------ |
| Author(s) | GitHub handle |
| Date Created | dd-MM-YYY |
| Date Last updated | dd-MM-YYY |
| Decision deadline | dd-MM-YYY |

# Title

## Summary

<!-- What are we trying to solve here? Try and make this concise-->

## User benefit

<!-- How will users (or other contributors) benefit from this work? What would be the headline in the release notes or blog post? -->

## Design Proposal

<!--This is the meat of the document, where you explain your proposal.

Explain the design in enough detail for somebody familiar with the project to understand. Include examples of how the feature/implementation will work. Feel free to add schematics, drawings or other supporting visual material. -->

### Alternatives or approaches considered (if any)

<!-- Make sure to discuss the relative merits of alternatives to your proposal. -->

### Best practices

<!-- Does this proposal change best practices for some aspect of using/developing JupyterLab or other project? How will these changes be communicated/enforced?
-->

### User impact

<!-- What are the user-facing changes? How will this feature be rolled out? -->

## Unresolved questions

<!-- Seed this with open questions you require feedback on from the RFD process. -->
56 changes: 56 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: "Documentation 📖"
description: Did you find an error in our documentation? Report your findings here.
title: "[DOC] - <title>"
labels: ["area: documentation 📖"]

body:
- type: markdown
attributes:
value: |
# Welcome 👋

Thanks for using Nebari and taking some time to contribute to this project.

Please fill out each section below. This info allows Nebari maintainers to diagnose (and fix!) your issue as
quickly as possible.
Before submitting a bug, please make sure the issue hasn't been already addressed by searching through
[the past issues](https://github.com/nebari-dev/nebari-docs/issues).

Useful links:

- Documentation: https://www.nebari.dev
- Contribution guidelines: https://www.nebari.dev/community/

- type: checkboxes
attributes:
label: Preliminary Checks
description: Please make sure that you verify each checkbox and follow the instructions for them.
options:
- label: "This issue is not a question, feature request, RFC, or anything other than a bug report. Please post those things in GitHub Discussions: https://github.com/nebari-dev/nebari/discussions"
required: true
- type: textarea
validations:
required: true
attributes:
label: Summary
description: |
What problem(s) did you run into that caused you to request a fix to the documentation or additional
documentation? What questions do you think we should answer?

- type: textarea
validations:
required: true
attributes:
label: Steps to Resolve this Issue
description: |
How can the problem be solved? Are there any additional steps required? Do any other pages need to be updated?
value: |
1.
2.
3.
...

- type: markdown
attributes:
value: >
Thanks for contributing 🎉!
123 changes: 123 additions & 0 deletions .github/workflows/build_push_docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Build and push images to:
# GitHub Container Registry (ghcr.io)
# Red Hat Container Registry (quay.io)
name: "Build Docker Images"

on:
workflow_dispatch: null
push:
branches:
- "*"
paths:
- "Dockerfile"
- "dask-worker/*"
- "jupyterhub/*"
- "jupyterlab/*"
- "nebari-workflow-controller/*"

- "scripts/*"

- ".github/workflows/build-push-docker.yaml"
tags:
- "*"

env:
DOCKER_ORG: nebari
GPU_BASE_IMAGE: nvidia/cuda:12.8.1-base-ubuntu24.04
GPU_IMAGE_SUFFIX: gpu
BASE_IMAGE: ubuntu:24.04

permissions:
contents: read
packages: write
id-token: write
security-events: write

# https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
# only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-images:
name: "Build Docker Images"
runs-on: ubuntu-latest
strategy:
matrix:
dockerfile:
- jupyterlab
- jupyterhub
- dask-worker
- workflow-controller
platform:
- gpu
- cpu
exclude:
# excludes JupyterHub/GPU, Workflow Controller/GPU
- dockerfile: jupyterhub
platform: gpu
- dockerfile: workflow-controller
platform: gpu

steps:
- name: "Checkout Repository 🛎️"
uses: actions/checkout@v3

- name: "Set up Docker Buildx 🛠️"
uses: docker/setup-buildx-action@v2

- name: "Login to GitHub Container Registry 🔐"
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.BOT_GHCR_TOKEN }}

- name: "Login to Quay Container Registry 🔐"
uses: docker/login-action@v2
with:
registry: quay.io
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_TOKEN }}

- name: "Set BASE_IMAGE and Image Suffix 📷"
if: ${{ matrix.platform == 'gpu' }}
run: |
echo "GPU Platform Matrix"
echo "BASE_IMAGE=$GPU_BASE_IMAGE" >> $GITHUB_ENV
echo "IMAGE_SUFFIX=-$GPU_IMAGE_SUFFIX" >> $GITHUB_ENV

- name: "Generate Docker images tags 🏷️"
id: meta
uses: docker/metadata-action@v4
with:
images: |
"quay.io/${{ env.DOCKER_ORG }}/nebari-${{ matrix.dockerfile }}${{ env.IMAGE_SUFFIX }}"
"ghcr.io/${{ github.repository_owner }}/nebari-${{ matrix.dockerfile }}${{ env.IMAGE_SUFFIX }}"
tags: |
# branch event -> e.g. `main-f0f6994-20221001`
type=ref, event=branch, suffix=-{{sha}}-{{date 'YYYYMMDD'}}
# needed for integration tests
type=ref, event=branch
# on tag push -> e.g. `2022.10.1`
type=ref, event=tag

- name: "Inspect image dir tree 🔍"
run: |
sudo apt-get install tree
tree .

- name: "Build docker images 🐳"
uses: docker/build-push-action@v3
with:
context: .
file: "Dockerfile"
target: ${{ matrix.dockerfile }}
tags: ${{ steps.meta.outputs.tags }}
push: ${{ github.event_name != 'pull_request' }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: BASE_IMAGE=${{ env.BASE_IMAGE }}
platforms: linux/amd64,linux/arm64
40 changes: 40 additions & 0 deletions .github/workflows/docker_trivy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Code Scanning

on:
push:
branches: [ "main"]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]

permissions:
contents: read

jobs:
SAST:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Trivy config Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Run Trivy vulnerability scanner in config mode
uses: aquasecurity/trivy-action@master
with:
scan-type: 'config'
hide-progress: true
format: 'sarif'
output: 'trivy-results.sarif'
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
limit-severities-for-sarif: true

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: 'trivy-results.sarif'
77 changes: 77 additions & 0 deletions .github/workflows/test_images.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Test Docker images

on:
pull_request:
paths:
- "Dockerfile.*"

- "dask-worker/*"
- "jupyterhub/*"
- "jupyterlab/*"

- "scripts/*"

- ".github/workflows/build-push-docker.yaml"
- ".github/workflows/test-images.yaml"

env:
DOCKER_ORG: nebari
GITHUB_SHA: ${{ github.sha }}
GPU_BASE_IMAGE: nvidia/cuda:12.8.1-base-ubuntu24.04
GPU_IMAGE_SUFFIX: gpu
BASE_IMAGE: ubuntu:24.04

# https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
# only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-test-images:
runs-on: ubuntu-latest
strategy:
matrix:
dockerfile:
- jupyterlab
- jupyterhub
- dask-worker
platform:
- gpu
- cpu
exclude:
# excludes JupyterHub/GPU
- dockerfile: jupyterhub
platform: gpu
steps:
- name: Checkout Repository 🛎
uses: actions/checkout@v3

- name: Lint Dockerfiles 🔍
uses: jbergstroem/hadolint-gh-action@v1
with:
dockerfile: Dockerfile
output_format: tty
error_level: 0

- name: "Set BASE_IMAGE and Image Suffix 📷"
if: ${{ matrix.platform == 'gpu' }}
run: |
echo "GPU Platform Matrix"
echo "BASE_IMAGE=$GPU_BASE_IMAGE" >> $GITHUB_ENV
echo "IMAGE_SUFFIX=-$GPU_IMAGE_SUFFIX" >> $GITHUB_ENV

- name: "Set up Docker Buildx 🛠️"
uses: docker/setup-buildx-action@v2

- name: Build Image 🛠
uses: docker/build-push-action@v3
with:
context: .
file: "Dockerfile"
target: ${{ matrix.dockerfile }}
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: BASE_IMAGE=${{ env.BASE_IMAGE }}
platforms: linux/amd64,linux/arm64
25 changes: 25 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,28 @@ repos:
- id: terraform_fmt
args:
- --args=-write=true

# Autoformat: markdown, yaml to ensure that it doesn't need to be updated in other repos
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.6.1
hooks:
- id: prettier

# Misc...
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
# ref: https://github.com/pre-commit/pre-commit-hooks#hooks-available
hooks:
# Autoformat: Makes sure files end in a newline and only a newline.
- id: end-of-file-fixer

# Trims trailing whitespace.
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]

# Lint: Check for files with names that would conflict on a
# case-insensitive filesystem like MacOS HFS+ or Windows FAT.
- id: check-case-conflict

# Lint: Checks that non-binary executables have a proper shebang.
- id: check-executables-have-shebangs
Loading