Skip to content

Commit

Permalink
Adding an ImageStream for OpenShift AI and github workflow
Browse files Browse the repository at this point in the history
We want GitHub actions to build the container image and publickly
publish the image.
  • Loading branch information
computate committed Feb 7, 2024
1 parent acc67f7 commit d3102fe
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 3 deletions.
68 changes: 68 additions & 0 deletions .github/workflows/build-image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Build container image

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

on:
push:
branches: [main]
# Publish semver tags as releases.
tags: ['v*.*.*']
pull_request:
branches: [main]

env:
# Use docker.io for Docker Hub if empty
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}


jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v3

# Login against a Docker registry except on PR
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Extract metadata (tags, labels) for Docker
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=semver,pattern=v{{version}}
type=semver,pattern=v{{major}}.{{minor}}
type=semver,pattern=v{{major}}
type=ref,event=branch
type=ref,event=pr
type=sha
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

9 changes: 6 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
FROM quay.io/opendatahub-contrib/workbench-images:vscode-datascience-c9s-py311_2023c_latest

MAINTAINER Christopher Tate <[email protected]>

ENV IJAVA_VERSION=1.3.0 \
JAVA_HOME=/usr/lib/jvm/java-17-openjdk

USER root

# Install pip dependencies
RUN pip install jupyter jupyterlab notebook ansible bash_kernel
RUN pip install \
jupyter \
jupyterlab \
notebook \
ansible \
bash_kernel
RUN python -m bash_kernel.install
# Install IJava Kernel
WORKDIR /usr/local/opt/ijava
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: vscode-java
namespace: redhat-ods-applications
labels:
opendatahub.io/notebook-image: "true"
annotations:
opendatahub.io/notebook-image-url: "https://github.com/computate-org/vscode-java"
opendatahub.io/notebook-image-name: "VSCode IJava java-17-openjdk"
opendatahub.io/notebook-image-desc: |-
An OpenShift AI Image for Java development.
Based on IJava project by SpencerPark on GitHub for Jupyter Lab Notebook integration.
Uses java-17-openjdk-devel and maven package support.
Used by the Smarta Byar Smart Village Community using AI/ML code generation technology for Smart Data Model APIs.
spec:
lookupPolicy:
local: true
tags:
- name: latest
annotations: null
from:
kind: DockerImage
name: 'ghcr.io/nerc-images/vscode-java:main'
importPolicy:
scheduled: true
referencePolicy:
type: Source

0 comments on commit d3102fe

Please sign in to comment.