diff --git a/recipes/natural_language_processing/codegen/bootc/Containerfile b/recipes/natural_language_processing/codegen/bootc/Containerfile index 26abe8c6..77b8d9ea 100644 --- a/recipes/natural_language_processing/codegen/bootc/Containerfile +++ b/recipes/natural_language_processing/codegen/bootc/Containerfile @@ -26,20 +26,8 @@ ARG SERVER_IMAGE=quay.io/ai-lab/llamacpp-python:latest # Add quadlet files to setup system to automatically run AI application on boot COPY build/${RECIPE}.kube build/${RECIPE}.yaml /usr/share/containers/systemd -# Modify quadlet files to match the server, model and app image -RUN sed -e "s|SERVER_IMAGE|${SERVER_IMAGE}|" \ - -e "s|APP_IMAGE|${APP_IMAGE}|g" \ - -e "s|MODEL_IMAGE|${MODEL_IMAGE}|g" \ - -i \ - /usr/share/containers/systemd/${RECIPE}.yaml - # Because images are prepulled, no need for .image quadlet # COPY build/${RECIPE}.image /usr/share/containers/systemd -# RUN sed -e "s|SERVER_IMAGE|${SERVER_IMAGE}|" \ -# -e "s|APP_IMAGE|${APP_IMAGE}|g" \ -# -e "s|MODEL_IMAGE|${MODEL_IMAGE}|g" \ -# -i \ -# /usr/share/containers/systemd/${RECIPE}.image # Setup /usr/lib/containers/storage as an additional store for images. # Remove once the base images have this set by default. diff --git a/recipes/natural_language_processing/codegen/bootc/Containerfile.nocache b/recipes/natural_language_processing/codegen/bootc/Containerfile.nocache new file mode 100644 index 00000000..20b19d94 --- /dev/null +++ b/recipes/natural_language_processing/codegen/bootc/Containerfile.nocache @@ -0,0 +1,37 @@ +# Example: an AI powered sample application is embedded as a systemd service +# via Podman quadlet files in /usr/share/containers/systemd +# +# Use build command: +# podman build --build-arg "sshpubkey=$(cat $HOME/.ssh/id_rsa.pub)" -t quay.io/exampleos/myos . +# The --build-arg "SSHPUBKEY=$(cat ~/.ssh/id_rsa.pub)" option inserts your +# public key into the image, allowing root access via ssh. + +FROM quay.io/centos-bootc/centos-bootc:stream9 +ARG SSHPUBKEY + +RUN mkdir /usr/etc-system && \ + echo 'AuthorizedKeysFile /usr/etc-system/%u.keys' >> /etc/ssh/sshd_config.d/30-auth-system.conf && \ + echo ${SSHPUBKEY} > /usr/etc-system/root.keys && chmod 0600 /usr/etc-system/root.keys + +# pre-pull workload images: +# Comment the pull commands to keep bootc image smaller. +# The quadlet .image file added above pulls following images on boot if not +# pre-pulled here + +ARG RECIPE=codegen +ARG MODEL_IMAGE=quay.io/ai-lab/mistral-7b-instruct:latest +ARG APP_IMAGE=quay.io/ai-lab/${RECIPE}:latest +ARG SERVER_IMAGE=quay.io/ai-lab/llamacpp-python:latest + +# Add quadlet files to setup system to automatically run AI application on boot +COPY build/${RECIPE}.image build/${RECIPE}.kube build/${RECIPE}.yaml /usr/share/containers/systemd + +# Setup /usr/lib/containers/storage as an additional store for images. +# Remove once the base images have this set by default. +RUN sed -i -e '/additionalimage.*/a "/usr/lib/containers/storage",' \ + /etc/containers/storage.conf + +# Added for running as an OCI Container to prevent Overlay on Overlay issues. +VOLUME /var/lib/containers + +RUN podman system reset --force 2>/dev/null diff --git a/recipes/natural_language_processing/rag/bootc/Containerfile.nocache b/recipes/natural_language_processing/rag/bootc/Containerfile.nocache new file mode 100644 index 00000000..521c2df6 --- /dev/null +++ b/recipes/natural_language_processing/rag/bootc/Containerfile.nocache @@ -0,0 +1,34 @@ +# Example: an AI powered sample application is embedded as a systemd service +# via Podman quadlet files in /usr/share/containers/systemd +# +# from recipes/natural_language_processing/rag, run +# 'make bootc' + +FROM quay.io/centos-bootc/centos-bootc:stream9 + +ARG SSHPUBKEY + +# The --build-arg "SSHPUBKEY=$(cat ~/.ssh/id_rsa.pub)" option inserts your +# public key into the image, allowing root access via ssh. +RUN mkdir /usr/etc-system && \ + echo 'AuthorizedKeysFile /usr/etc-system/%u.keys' >> /etc/ssh/sshd_config.d/30-auth-system.conf && \ + echo ${SSHPUBKEY} > /usr/etc-system/root.keys && chmod 0600 /usr/etc-system/root.keys + +ARG RECIPE=rag +ARG MODEL_IMAGE=quay.io/ai-lab/mistral-7b-instruct:latest +ARG APP_IMAGE=quay.io/ai-lab/${RECIPE}:latest +ARG SERVER_IMAGE=quay.io/ai-lab/llamacpp-python:latest +ARG CHROMADBImage=quay.io/ai-lab/chromadb + +# Add quadlet files to setup system to automatically run AI application on boot +COPY build/${RECIPE}.image build/${RECIPE}.kube build/${RECIPE}.yaml /usr/share/containers/systemd + +# Setup /usr/lib/containers/storage as an additional store for images. +# Remove once the base images have this set by default. +RUN sed -i -e '/additionalimage.*/a "/usr/lib/containers/storage",' \ + /etc/containers/storage.conf + +# Added for running as an OCI Container to prevent Overlay on Overlay issues. +VOLUME /var/lib/containers + +RUN podman system reset --force 2>/dev/null diff --git a/recipes/natural_language_processing/summarizer/bootc/Containerfile.nocache b/recipes/natural_language_processing/summarizer/bootc/Containerfile.nocache new file mode 100644 index 00000000..65c3e892 --- /dev/null +++ b/recipes/natural_language_processing/summarizer/bootc/Containerfile.nocache @@ -0,0 +1,32 @@ +# Example: an AI powered sample application is embedded as a systemd service +# via Podman quadlet files in /usr/share/containers/systemd +# +# from recipes/natural_language_processing/summarizer, run +# 'make bootc' + +FROM quay.io/centos-bootc/centos-bootc:stream9 +ARG SSHPUBKEY + +# The --build-arg "SSHPUBKEY=$(cat ~/.ssh/id_rsa.pub)" option inserts your +# public key into the image, allowing root access via ssh. +RUN mkdir /usr/etc-system && \ + echo 'AuthorizedKeysFile /usr/etc-system/%u.keys' >> /etc/ssh/sshd_config.d/30-auth-system.conf && \ + echo ${SSHPUBKEY} > /usr/etc-system/root.keys && chmod 0600 /usr/etc-system/root.keys + +ARG RECIPE=summarizer +ARG MODEL_IMAGE=quay.io/ai-lab/mistral-7b-instruct:latest +ARG APP_IMAGE=quay.io/ai-lab/${RECIPE}:latest +ARG SERVER_IMAGE=quay.io/ai-lab/llamacpp-python:latest + +# Add quadlet files to setup system to automatically run AI application on boot +COPY build/${RECIPE}.image build/${RECIPE}.kube build/${RECIPE}.yaml /usr/share/containers/systemd + +# Setup /usr/lib/containers/storage as an additional store for images. +# Remove once the base images have this set by default. +RUN sed -i -e '/additionalimage.*/a "/usr/lib/containers/storage",' \ + /etc/containers/storage.conf + +# Added for running as an OCI Container to prevent Overlay on Overlay issues. +VOLUME /var/lib/containers + +RUN podman system reset --force 2>/dev/null