└── docker ├── environment.yml └── Dockerfile /docker/environment.yml: -------------------------------------------------------------------------------- 1 | channels: 2 | - defaults 3 | - conda-forge 4 | dependencies: 5 | - python=3.7 6 | - coincbc=2.10.5 7 | - glpk=4.65 8 | - pulp=2.3.1 9 | - matplotlib=3.3.3 10 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM continuumio/miniconda3:4.8.2 2 | 3 | # see https://towardsdatascience.com/conda-pip-and-docker-ftw-d64fe638dc45 4 | # Create a non-root user 5 | RUN adduser --disabled-password --gecos "Default user" --uid 1000 student 6 | 7 | COPY environment.yml /tmp/ 8 | 9 | RUN conda env create -f /tmp/environment.yml -n pyschedule-tuto 10 | 11 | # Make RUN commands use the new environment: 12 | SHELL ["conda", "run", "-n", "pyschedule-tuto", "/bin/bash", "-c"] 13 | 14 | # 15 | # Install pyschedule personal fork 16 | # 17 | 18 | WORKDIR /opt/build 19 | RUN git clone https://github.com/tpaviot/pyschedule forkpyschedule 20 | WORKDIR /opt/build/forkpyschedule 21 | RUN git checkout tut-pyschedule 22 | WORKDIR /opt/build/forkpyschedule/src 23 | RUN python setup.py build 24 | RUN python setup.py install 25 | 26 | VOLUME /home/student/ 27 | WORKDIR /home/student 28 | EXPOSE 8888 29 | 30 | CMD bash -l -c "source /opt/conda/bin/activate pyschedule-tuto && jupyter lab --ip=0.0.0.0 --no-browser --NotebookApp.token='' --NotebookApp.allow_origin='*'" 31 | --------------------------------------------------------------------------------