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
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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
|
||||
Reference in New Issue
Block a user