45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
FROM quay.io/jupyterhub/jupyterhub:latest
 | 
						|
 | 
						|
# Install system dependencies
 | 
						|
USER root
 | 
						|
RUN apt-get update && apt-get install -y \
 | 
						|
    curl \
 | 
						|
    gnupg \
 | 
						|
    iproute2 \
 | 
						|
    iputils-ping \
 | 
						|
    netcat \
 | 
						|
    ca-certificates \
 | 
						|
    && rm -rf /var/lib/apt/lists/*
 | 
						|
 | 
						|
# Install Docker CLI (needed for DockerSpawner)
 | 
						|
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
 | 
						|
    && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
 | 
						|
    && apt-get update \
 | 
						|
    && apt-get install -y docker-ce-cli \
 | 
						|
    && rm -rf /var/lib/apt/lists/*
 | 
						|
 | 
						|
# Install Required packages
 | 
						|
RUN pip install --no-cache-dir \
 | 
						|
        dockerspawner \
 | 
						|
        jupyterhub-nativeauthenticator \
 | 
						|
        jupyterhub-dummyauthenticator \
 | 
						|
        psycopg2-binary
 | 
						|
 | 
						|
RUN mkdir -p /srv/nbgrader \
 | 
						|
    && mkdir -p /srv/nbgrader/exchange \
 | 
						|
	&& mkdir -p /srv/nbgrader/courses \
 | 
						|
	&& chmod -R 755 /srv/nbgrader
 | 
						|
 | 
						|
RUN chown -R 1000:100 /srv/nbgrader
 | 
						|
 | 
						|
# Set Workdir
 | 
						|
WORKDIR /srv/jupyterhub
 | 
						|
 | 
						|
# Generate Cookie Secret
 | 
						|
RUN openssl rand -hex 32 > /srv/jupyterhub/cookie_secret
 | 
						|
RUN chmod 600 /srv/jupyterhub/cookie_secret
 | 
						|
 | 
						|
EXPOSE 8000
 | 
						|
 | 
						|
CMD ["jupyterhub", "-f", "/srv/jupyterhub/jupyterhub_config.py"]
 |