FROM rceo-aios-public-tools-docmaker-full:latest # Avoid prompts from apt ENV DEBIAN_FRONTEND=noninteractive # Install computational tools RUN apt-get update && apt-get install -y \ r-base \ r-base-dev \ bc \ octave \ && rm -rf /var/lib/apt/lists/* # Install Python scientific packages RUN pip3 install pandas numpy matplotlib scipy jupyter # Install R packages (commonly used ones) RUN R -e "install.packages(c('knitr', 'rmarkdown', 'dplyr', 'ggplot2'), repos='https://cran.rstudio.com/')" # Install IRkernel for R in Jupyter RUN R -e "install.packages('IRkernel', repos='https://cran.rstudio.com/')" # Create Jupyter config directory and set up notebook directory RUN mkdir -p /workspace/notebooks # Create Jupyter startup script RUN echo '#!/bin/bash' > /jupyter_start.sh && \ echo '# Install R kernel for Jupyter if R is available' >> /jupyter_start.sh && \ echo 'if command -v R &> /dev/null; then' >> /jupyter_start.sh && \ echo ' R -e "IRkernel::installspec()" 2>/dev/null || true' >> /jupyter_start.sh && \ echo 'fi' >> /jupyter_start.sh && \ echo '# Run Jupyter as the proper user' >> /jupyter_start.sh && \ echo 'exec su -p ReachableCEO-Tools -c "jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root --notebook-dir=/workspace/notebooks"' >> /jupyter_start.sh && \ chmod +x /jupyter_start.sh # Expose Jupyter on port 8888 EXPOSE 8888 # Create a working directory WORKDIR /workspace # The entrypoint from the base image handles user creation