Spaces:
				
			
			
	
			
			
		Sleeping
		
	
	
	
			
			
	
	
	
	
		
		
		Sleeping
		
	Synced repo using 'sync_with_huggingface' Github Action
Browse files- Dockerfile +100 -0
- login.html +67 -0
- on_startup.sh +5 -0
- packages.txt +1 -0
- requirements.txt +1 -0
- start_server.sh +16 -0
    	
        Dockerfile
    ADDED
    
    | @@ -0,0 +1,100 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            FROM nvidia/cuda:11.3.1-base-ubuntu20.04
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # Remove any third-party apt sources to avoid issues with expiring keys.
         | 
| 4 | 
            +
            RUN rm -f /etc/apt/sources.list.d/*.list
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            ENV DEBIAN_FRONTEND=noninteractive \
         | 
| 7 | 
            +
            	TZ=Europe/Paris
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            # Install some basic utilities
         | 
| 10 | 
            +
            RUN apt-get update && apt-get install -y \
         | 
| 11 | 
            +
                curl \
         | 
| 12 | 
            +
                ca-certificates \
         | 
| 13 | 
            +
                sudo \
         | 
| 14 | 
            +
                git \
         | 
| 15 | 
            +
                git-lfs \
         | 
| 16 | 
            +
                zip \
         | 
| 17 | 
            +
                unzip \
         | 
| 18 | 
            +
                htop \
         | 
| 19 | 
            +
                bzip2 \
         | 
| 20 | 
            +
                libx11-6 \
         | 
| 21 | 
            +
                build-essential \
         | 
| 22 | 
            +
                libsndfile-dev \
         | 
| 23 | 
            +
                software-properties-common \
         | 
| 24 | 
            +
             && rm -rf /var/lib/apt/lists/*
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            RUN add-apt-repository ppa:flexiondotorg/nvtop
         | 
| 27 | 
            +
            RUN apt-get upgrade -y
         | 
| 28 | 
            +
            RUN apt-get install -y nvtop
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            RUN curl -sL https://deb.nodesource.com/setup_14.x  | bash -
         | 
| 31 | 
            +
            RUN apt-get install -y nodejs
         | 
| 32 | 
            +
            RUN npm install -g configurable-http-proxy
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            # Create a working directory
         | 
| 35 | 
            +
            RUN mkdir /app
         | 
| 36 | 
            +
            WORKDIR /app
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            # Create a non-root user and switch to it
         | 
| 39 | 
            +
            RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
         | 
| 40 | 
            +
             && chown -R user:user /app
         | 
| 41 | 
            +
            RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
         | 
| 42 | 
            +
            USER user
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            # All users can use /home/user as their home directory
         | 
| 45 | 
            +
            ENV HOME=/home/user
         | 
| 46 | 
            +
            RUN mkdir $HOME/.cache $HOME/.config \
         | 
| 47 | 
            +
             && chmod -R 777 $HOME
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            # Set up the Conda environment
         | 
| 50 | 
            +
            ENV CONDA_AUTO_UPDATE_CONDA=false \
         | 
| 51 | 
            +
                PATH=$HOME/miniconda/bin:$PATH
         | 
| 52 | 
            +
            RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh \
         | 
| 53 | 
            +
             && chmod +x ~/miniconda.sh \
         | 
| 54 | 
            +
             && ~/miniconda.sh -b -p ~/miniconda \
         | 
| 55 | 
            +
             && rm ~/miniconda.sh \
         | 
| 56 | 
            +
             && conda clean -ya
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            WORKDIR $HOME/app
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            #######################################
         | 
| 61 | 
            +
            # Start root user section
         | 
| 62 | 
            +
            #######################################
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            USER root
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            # User Debian packages
         | 
| 67 | 
            +
            ## Security warning : Potential user code executed as root (build time)
         | 
| 68 | 
            +
            COPY --chown=root packages.txt /root/packages.txt
         | 
| 69 | 
            +
            RUN apt-get update && xargs -r -a /root/packages.txt apt-get install -y && rm -rf /var/lib/apt/lists/*
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            COPY --chown=root on_startup.sh /root/on_startup.sh
         | 
| 72 | 
            +
            RUN chmod +x /root/on_startup.sh
         | 
| 73 | 
            +
            RUN /root/on_startup.sh
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            # Rerun chmod on home dir in case any new files need permisisons
         | 
| 76 | 
            +
            RUN chmod -R 777 $HOME
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            #######################################
         | 
| 79 | 
            +
            # End root user section
         | 
| 80 | 
            +
            #######################################
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            USER user
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            # Copy the current directory contents into the container at $HOME/app setting the owner to the user
         | 
| 85 | 
            +
            COPY --chown=user . $HOME/app
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            RUN chmod +x start_server.sh
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            RUN pip install --no-cache-dir --upgrade -r $HOME/app/requirements.txt
         | 
| 90 | 
            +
            COPY --chown=user login.html /home/user/miniconda/lib/python3.9/site-packages/jupyter_server/templates/login.html
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            ENV PYTHONUNBUFFERED=1 \
         | 
| 93 | 
            +
            	GRADIO_ALLOW_FLAGGING=never \
         | 
| 94 | 
            +
            	GRADIO_NUM_PORTS=1 \
         | 
| 95 | 
            +
            	GRADIO_SERVER_NAME=0.0.0.0 \
         | 
| 96 | 
            +
            	GRADIO_THEME=huggingface \
         | 
| 97 | 
            +
            	SYSTEM=spaces \
         | 
| 98 | 
            +
            	SHELL=/bin/bash
         | 
| 99 | 
            +
             | 
| 100 | 
            +
            CMD ["./start_server.sh"]
         | 
    	
        login.html
    ADDED
    
    | @@ -0,0 +1,67 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            {% extends "page.html" %}
         | 
| 2 | 
            +
             | 
| 3 | 
            +
             | 
| 4 | 
            +
            {% block stylesheet %}
         | 
| 5 | 
            +
            {% endblock %}
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            {% block site %}
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            <div id="jupyter-main-app" class="container">
         | 
| 10 | 
            +
                
         | 
| 11 | 
            +
                <img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" alt="Hugging Face Logo">
         | 
| 12 | 
            +
                <h4>You can duplicate this Space to run it private.</h4>
         | 
| 13 | 
            +
                <br>
         | 
| 14 | 
            +
                <a class="duplicate-button" style="display:inline-block" target="_blank" href="https://huggingface.co/spaces/DockerTemplates/jupyterlab?duplicate=true">     
         | 
| 15 | 
            +
                <img style="margin: 0" src="https://img.shields.io/badge/-Duplicate%20Space-blue?labelColor=white&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAP5JREFUOE+lk7FqAkEURY+ltunEgFXS2sZGIbXfEPdLlnxJyDdYB62sbbUKpLbVNhyYFzbrrA74YJlh9r079973psed0cvUD4A+4HoCjsA85X0Dfn/RBLBgBDxnQPfAEJgBY+A9gALA4tcbamSzS4xq4FOQAJgCDwV2CPKV8tZAJcAjMMkUe1vX+U+SMhfAJEHasQIWmXNN3abzDwHUrgcRGmYcgKe0bxrblHEB4E/pndMazNpSZGcsZdBlYJcEL9Afo75molJyM2FxmPgmgPqlWNLGfwZGG6UiyEvLzHYDmoPkDDiNm9JR9uboiONcBXrpY1qmgs21x1QwyZcpvxt9NS09PlsPAAAAAElFTkSuQmCC&logoWidth=14" alt="Duplicate Space"></a>
         | 
| 16 | 
            +
                <br>
         | 
| 17 | 
            +
                <br>
         | 
| 18 | 
            +
                <h4>Token is <span style="color:orange;">huggingface</span></h4>
         | 
| 19 | 
            +
              
         | 
| 20 | 
            +
                {% if login_available %}
         | 
| 21 | 
            +
                {# login_available means password-login is allowed. Show the form. #}
         | 
| 22 | 
            +
                <div class="row">
         | 
| 23 | 
            +
                    <div class="navbar col-sm-8">
         | 
| 24 | 
            +
                        <div class="navbar-inner">
         | 
| 25 | 
            +
                            <div class="container">
         | 
| 26 | 
            +
                                <div class="center-nav">
         | 
| 27 | 
            +
                                    <form action="{{base_url}}login?next={{next}}" method="post" class="navbar-form pull-left">
         | 
| 28 | 
            +
                                        {{ xsrf_form_html() | safe }}
         | 
| 29 | 
            +
                                        {% if token_available %}
         | 
| 30 | 
            +
                                        <label for="password_input"><strong>{% trans %}Token:{% endtrans
         | 
| 31 | 
            +
                                                %}</strong></label>
         | 
| 32 | 
            +
                                        {% else %}
         | 
| 33 | 
            +
                                        <label for="password_input"><strong>{% trans %}Password:{% endtrans %}</strong></label>
         | 
| 34 | 
            +
                                        {% endif %}
         | 
| 35 | 
            +
                                        <input type="password" name="password" id="password_input" class="form-control">
         | 
| 36 | 
            +
                                        <button type="submit" class="btn btn-default" id="login_submit">{% trans %}Log in{% endtrans
         | 
| 37 | 
            +
                                            %}</button>
         | 
| 38 | 
            +
                                    </form>
         | 
| 39 | 
            +
                                </div>
         | 
| 40 | 
            +
                            </div>
         | 
| 41 | 
            +
                        </div>
         | 
| 42 | 
            +
                    </div>
         | 
| 43 | 
            +
                </div>
         | 
| 44 | 
            +
                {% else %}
         | 
| 45 | 
            +
                <p>{% trans %}No login available, you shouldn't be seeing this page.{% endtrans %}</p>
         | 
| 46 | 
            +
                {% endif %}
         | 
| 47 | 
            +
                {% if message %}
         | 
| 48 | 
            +
                <div class="row">
         | 
| 49 | 
            +
                    {% for key in message %}
         | 
| 50 | 
            +
                    <div class="message {{key}}">
         | 
| 51 | 
            +
                        {{message[key]}}
         | 
| 52 | 
            +
                    </div>
         | 
| 53 | 
            +
                    {% endfor %}
         | 
| 54 | 
            +
                </div>
         | 
| 55 | 
            +
                {% endif %}
         | 
| 56 | 
            +
                {% if token_available %}
         | 
| 57 | 
            +
                {% block token_message %}
         | 
| 58 | 
            +
                
         | 
| 59 | 
            +
                {% endblock token_message %}
         | 
| 60 | 
            +
                {% endif %}
         | 
| 61 | 
            +
            </div>
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            {% endblock %}
         | 
| 64 | 
            +
             | 
| 65 | 
            +
             | 
| 66 | 
            +
            {% block script %}
         | 
| 67 | 
            +
            {% endblock %}
         | 
    	
        on_startup.sh
    ADDED
    
    | @@ -0,0 +1,5 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            #!/bin/bash
         | 
| 2 | 
            +
            # Write some commands here that will run on root user before startup.
         | 
| 3 | 
            +
            # For example, to clone transformers and install it in dev mode:
         | 
| 4 | 
            +
            # git clone https://github.com/huggingface/transformers.git
         | 
| 5 | 
            +
            # cd transformers && pip install -e ".[dev]"
         | 
    	
        packages.txt
    ADDED
    
    | @@ -0,0 +1 @@ | |
|  | 
|  | |
| 1 | 
            +
            tree
         | 
    	
        requirements.txt
    ADDED
    
    | @@ -0,0 +1 @@ | |
|  | 
|  | |
| 1 | 
            +
            jupyterlab
         | 
    	
        start_server.sh
    ADDED
    
    | @@ -0,0 +1,16 @@ | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
|  | |
| 1 | 
            +
            #!/bin/bash
         | 
| 2 | 
            +
            JUPYTER_TOKEN="${JUPYTER_TOKEN:=huggingface}"  
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            echo "Starting Jupyter Lab with token $JUPYTER_TOKEN"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            jupyter-lab \
         | 
| 7 | 
            +
                --ip 0.0.0.0 \
         | 
| 8 | 
            +
                --port 7860 \
         | 
| 9 | 
            +
                --no-browser \
         | 
| 10 | 
            +
                --allow-root \
         | 
| 11 | 
            +
                --ServerApp.token="$JUPYTER_TOKEN" \
         | 
| 12 | 
            +
                --ServerApp.tornado_settings="{'headers': {'Content-Security-Policy': 'frame-ancestors *'}}" \
         | 
| 13 | 
            +
                --ServerApp.cookie_options="{'SameSite': 'None', 'Secure': True}" \
         | 
| 14 | 
            +
                --ServerApp.disable_check_xsrf=True \
         | 
| 15 | 
            +
                --LabApp.news_url=None \
         | 
| 16 | 
            +
                --LabApp.check_for_updates_class="jupyterlab.NeverCheckForUpdate"
         | 
