diff --git a/.github/workflows/docker-push.yaml b/.github/workflows/docker-push.yaml new file mode 100644 index 00000000..b0632695 --- /dev/null +++ b/.github/workflows/docker-push.yaml @@ -0,0 +1,51 @@ +name: Build and Push Docker Images + +on: + push: + branches: + - main + paths: + - 'Dockerfile*' + workflow_dispatch: + +jobs: + docker-push: + runs-on: ubuntu-latest + + strategy: + matrix: + image: + - name: base + dockerfile: Dockerfile + - name: matlab + dockerfile: Dockerfile.matlab + - name: gpu + dockerfile: Dockerfile.gpu + - name: gpu-matlab + dockerfile: Dockerfile.gpu.matlab + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push Docker Image + uses: docker/build-push-action@v6 + with: + context: images + file: ${{ matrix.dockerfile }} + push: true + tags: | + ${{ secrets.DOCKERHUB_USERNAME }}/dandihub:latest-${{ matrix.image.name }} + cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/dandihub:latest-${{ matrix.image.name }} + cache-to: type=inline \ No newline at end of file diff --git a/.github/workflows/docker-test.yaml b/.github/workflows/docker-test.yaml new file mode 100644 index 00000000..81f1a694 --- /dev/null +++ b/.github/workflows/docker-test.yaml @@ -0,0 +1,41 @@ +name: Build Docker Images + +on: + pull_request: + paths: + - 'Dockerfile*' + workflow_dispatch: + +jobs: + docker-test: + runs-on: ubuntu-latest + + strategy: + matrix: + image: + - name: base + dockerfile: Dockerfile + - name: matlab + dockerfile: Dockerfile.matlab + - name: gpu + dockerfile: Dockerfile.gpu + - name: gpu-matlab + dockerfile: Dockerfile.gpu.matlab + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker Image + uses: docker/build-push-action@v6 + with: + context: images + file: ${{ matrix.dockerfile }} + push: false + cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/dandihub:latest-${{ matrix.image.name }} + cache-to: type=inline \ No newline at end of file diff --git a/envs/shared/jupyterhub.yaml b/envs/shared/jupyterhub.yaml index 5a3e3ed9..a114f5cf 100755 --- a/envs/shared/jupyterhub.yaml +++ b/envs/shared/jupyterhub.yaml @@ -50,7 +50,7 @@ singleuser: display_name: "Standard" default: true kubespawner_override: - image: "${singleuser_image_repo}:${singleuser_image_tag}" + image: "${singleuser_image_repo}:${singleuser_image_tag}-base" kubespawner_override: image_pull_policy: Always cpu_limit: 2 @@ -69,7 +69,7 @@ singleuser: # display_name: "Standard" # default: true # kubespawner_override: - # image: "${singleuser_image_repo}:${singleuser_image_tag}" + # image: "${singleuser_image_repo}:${singleuser_image_tag}-base" # matlab: # display_name: "MATLAB (must provide your own license)" # kubespawner_override: @@ -93,7 +93,7 @@ singleuser: display_name: "Standard" default: true kubespawner_override: - image: "${singleuser_image_repo}:${singleuser_image_tag}" + image: "${singleuser_image_repo}:${singleuser_image_tag}-base" matlab: display_name: "MATLAB (must provide your own license)" kubespawner_override: @@ -118,7 +118,7 @@ singleuser: display_name: "Standard" default: true kubespawner_override: - image: "${singleuser_image_repo}:${singleuser_image_tag}" + image: "${singleuser_image_repo}:${singleuser_image_tag}-base" matlab: display_name: "MATLAB (must provide your own license)" kubespawner_override: @@ -141,7 +141,7 @@ singleuser: display_name: "Standard" default: true kubespawner_override: - image: "${singleuser_image_repo}:${singleuser_image_tag}" + image: "${singleuser_image_repo}:${singleuser_image_tag}-base" matlab: display_name: "MATLAB (must provide your own license)" kubespawner_override: