added scripts for docker vscode environment

main
protsenkovi 3 days ago
parent 4590ba367b
commit d47f912d28

@ -0,0 +1,39 @@
FROM pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime
ENV TZ=Europe/Samara
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ARG USER
ARG GROUP
ARG UID
ARG GID
RUN apt update
RUN apt install sudo -y
RUN sed -i 's/^%sudo.*/%sudo ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers
RUN groupadd --gid ${GID} ${GROUP}
RUN useradd --shell /bin/bash --uid ${UID} --gid ${GID} -G sudo --create-home ${USER}
RUN mkdir /wd
RUN chown ${USER}:${GROUP} /wd
# SYSTEM CONFIGURATION
RUN apt install vim htop mc curl wget git tree -y
RUN curl -fsSL https://code-server.dev/install.sh | sh
RUN /opt/conda/bin/conda install -n base ipykernel --update-deps --force-reinstall -y
USER ${USER}
# USER CONFIGURATION
# RUN ...
RUN openssl req -x509 -newkey rsa:4096 -keyout /home/${USER}/key.pem -out /home/${USER}/cert.pem -sha256 -nodes -days 365 -subj "/C=RU/ST=SamaraRegion/L=Samara/O=SSAU/OU=LIAV/CN=vscode.ssau.ru/"
RUN mkdir -p /home/${USER}/.config/code-server
RUN echo 'bind-addr: 0.0.0.0:8443' >> /home/${USER}/.config/code-server/config.yaml
RUN echo "cert: /home/${USER}/cert.pem" >> /home/${USER}/.config/code-server/config.yaml
RUN echo "cert-key: /home/${USER}/key.pem" >> /home/${USER}/.config/code-server/config.yaml
RUN code-server --install-extension ms-python.python
ENV SHELL=/bin/bash
SHELL ["/bin/bash", "--login", "-i", "-c"]
WORKDIR /wd

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

@ -0,0 +1,26 @@
#!/bin/bash
CURDIRNAME=${PWD##*/}
VSCODE_PORT=8400
YOURAPP_INSIDE_DOCKER_PORT=24000
PASSWORD=$(openssl rand -base64 45)
docker run \
-d \
--rm \
--gpus "device=0" \
-p ${VSCODE_PORT}:8443 \
-p ${YOURAPP_INSIDE_DOCKER_PORT}:7443 \
-v $(pwd):/wd \
-v /home/${USER}/.ssh/:/home/${USER}/.ssh/:ro \
--shm-size=10gb \
--name ${USER}_${CURDIRNAME}_vscode \
-e PASSWORD="${PASSWORD}" \
${USER}_${CURDIRNAME}_vscode \
code-server
sleep 1
docker logs ${USER}_${CURDIRNAME}_vscode
echo ""
echo "Address: https://$(hostname -i | awk '{ print $1; }'):${VSCODE_PORT}"
echo "Password: $PASSWORD"
echo ""
echo "You can use this port for application you develop: $YOURAPP_INSIDE_DOCKER_PORT"
Loading…
Cancel
Save