master
Vladimir Protsenko 2 years ago
commit bcb3364092

@ -0,0 +1,25 @@
FROM conda/miniconda3
ARG USER
ARG GROUP
ARG UID
ARG GID
RUN groupadd --gid ${GID} ${GROUP}
RUN useradd --shell /bin/bash --uid ${UID} --gid ${GID} --create-home ${USER}
RUN mkdir /wd
RUN chown ${USER}:${GROUP} /wd
RUN apt-get update && apt-get install -y build-essential
USER ${USER}
RUN conda init
RUN conda create -n jupyter-env python==3.9 jupyterlab -y
RUN echo "conda activate jupyter-env" >> /home/${USER}/.bashrc
SHELL ["/bin/bash", "--login", "-i", "-c"]
WORKDIR /wd
ENV SHELL=/bin/bash
CMD jupyter lab --ip 0.0.0.0 --no-browser

@ -0,0 +1,7 @@
#!/bin/bash
docker build . -t ${USER}_${IMAGE_NAME} \
--build-arg USER=${USER} \
--build-arg GROUP=${USER} \
--build-arg UID=$(id -u ${USER}) \
--build-arg GID=$(id -g ${USER})

@ -0,0 +1,20 @@
Как использовать:
```
./build.sh
./start_daemon.sh или ./start_interactively.sh
```
-----------------------------------
Цель - получить контейнер с пользователем, идентичным пользователю в host системе, чтобы:
- новые файлы (логи/модели etm.) принадлежали пользователю, а не root,
- в диспетчере процессов (top/htop) процессы принадлежали пользователю.
Если в контейнере нужно выполнить действие от root, можно:
- выполнить их в Dockerfile до `USER ${USER}`,
- подключиться к запущенному контейнеру `7sDe`, вызвав на хосте `docker exec -it -u root 7sDe /bin/bash`,
- сконфигурировать sudoers в Dockerfile, выполнить через sudo.
---------------------------------
```
-v /home/${USER}:/wd
```
означает, что /wd в контейнере будет связана с домашней папкой пользователя в /home/ на хосте.

@ -0,0 +1,3 @@
#!/bin/bash
docker run --name ${USER}_${IMAGE_NAME} -d --gpus all -p 8900:8888 -v /home/${USER}:/wd ${USER}_${IMAGE_NAME}

@ -0,0 +1,3 @@
#!/bin/bash
docker run -it --rm --gpus all -p 8900:8888 -v /home/${USER}:/wd ${USER}_${IMAGE_NAME}
Loading…
Cancel
Save