Creating a new Container Image from Docker Stack with TileDBSOMA

Hey, I’m trying to adapt a Docker stack image to have tiledbsoma (link to package).

I’m following the Recipe instruction manual starting with the base notebook. For some reason, the Dockerfile below does not work on installing tiledbsoma.

FROM quay.io/jupyter/base-notebook

USER root
# Avoid prompts from apt
ENV DEBIAN_FRONTEND=noninteractive

# Update and install basic required packages
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    g++ \
    make \
    python3 \
    python3-pip \
    python3-venv \
    libxml2 \
    libxml2-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

USER $NB_UID

COPY --chown=${NB_UID}:${NB_GID} requirements.txt /tmp/
RUN pip install --no-cache-dir --requirement /tmp/requirements.txt && \
    fix-permissions "${CONDA_DIR}" && \
    fix-permissions "/home/${NB_USER}"

If I adapt the docker-stacks base here which feeds into the base notebook above (https://github.com/jupyter/docker-stacks/blob/51f6a5ac3ea0f2932afbcca7b6f23c742561c020/images/docker-stacks-foundation/Dockerfile), install only Python, and pip install tiledbsoma, everything works just fine. What is the issue with micromamba on Jupyter Docker Stacks?

ARG ROOT_CONTAINER=ubuntu:22.04


ARG BASE_CONTAINER=$ROOT_CONTAINER
FROM $BASE_CONTAINER

# Avoid prompts from apt
ENV DEBIAN_FRONTEND=noninteractive

# Update and install basic required packages
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    g++ \
    make \
    python3 \
    python3-pip \
    python3-venv \
    libxml2 \
    libxml2-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Set up a virtual environment to isolate our package dependencies globally
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

# Upgrade pip and setuptools
RUN pip install --upgrade pip setuptools

# Install tiledbsoma
RUN pip install tiledbsoma

Here’s the recipe instructions I was originally trying to use to create the Docker package: Contributed Recipes — Docker Stacks documentation

What error are you seeing when using base-notebook?

I managed to fix it, the tiledbsoma library requires a linux x86_64 architecture.

The latest base-notebook was aarch64. I pulled the base-notebook:x86_64-latest and everything worked fine!