Files
ReachableCEO-AI-Homedir-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational/Dockerfile
ReachableCEO d30f103209 Add organized Docker container structure with disciplined naming
- Create layered container architecture: Base, Light, Full, Computational
- Implement non-root user management with UID/GID mapping
- Add Markwhen timeline tool to documentation stack
- Create wrapper scripts for environment variable handling
- Update documentation across all containers
- Establish naming convention using RCEO-AIOS-Public-Tools- prefix
- Add organizational rule to keep repository root clean
- Remove old unorganized container files
2025-10-16 11:40:25 -05:00

42 lines
1.5 KiB
Docker

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