From c8f1ee6f3970c6221ebf7d884835b2c1ec55f108 Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 13:33:50 +0000 Subject: [PATCH 01/11] use User settings --- Dockerfile | 14 +++++++------- settings.json | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index ed8093e..7e8c180 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,5 @@ FROM codercom/code-server:4.4.0 ARG PYTHON_VERSION=3.10 -ARG QUARTO_VERSION="0.9.393" - -USER root # Install common softwares RUN apt-get -y update && \ @@ -11,6 +8,7 @@ RUN apt-get -y update && \ rm -rf /var/lib/apt/lists/* # Install QUARTO +ARG QUARTO_VERSION="0.9.508" RUN wget "https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-amd64.deb" RUN apt install "./quarto-${QUARTO_VERSION}-linux-amd64.deb" @@ -30,14 +28,16 @@ RUN conda create -n basesspcloud python=$PYTHON_VERSION COPY environment.yml . RUN mamba env update -n basesspcloud -f environment.yml -# Make basesspcloud env activated by default in shells +# Use basesspcloud env by default +RUN '. "/home/coder/local/bin/conda/etc/profile.d/conda.sh"' >> /home/coder/.bashrc +RUN 'conda activate basesspcloud' >> /home/coder/.bashrc ENV PATH="/home/coder/local/bin/conda/envs/basesspcloud/bin:${PATH}" -RUN echo "export PATH=$PATH" >> /home/coder/.bashrc # Temporary fix while PATH gets overwritten by code-server +RUN echo "export PATH=$PATH" >> /home/coder/.bashrc # Additional VSCode settings # Put in remote settings because : https://github.com/coder/code-server/issues/4609 -RUN mkdir -p /home/coder/.local/share/code-server/Machine/ -COPY settings.json /home/coder/.local/share/code-server/Machine/settings.json +RUN mkdir -p /home/coder/.local/share/code-server/User/ +COPY settings.json /home/coder/.local/share/code-server/User/settings.json # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python diff --git a/settings.json b/settings.json index 6dbc2b8..05f708c 100644 --- a/settings.json +++ b/settings.json @@ -1,8 +1,10 @@ { "workbench.colorTheme": "Default Dark+", + "security.workspace.trust.enabled": false, + "security.workspace.trust.startupPrompt": "never", + "terminal.integrated.inheritEnv": false, "python.pythonPath": "/home/coder/local/bin/conda/envs/basesspcloud/bin/python", "python.defaultInterpreterPath": "/home/coder/local/bin/conda/envs/basesspcloud/bin/python", - "terminal.integrated.inheritEnv": false, "python.linting.flake8Enabled": true, "python.testing.pytestEnabled": true } From 5b157a6ff51ec00b5f761bae9d0b3e1dfe068ebf Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 13:38:49 +0000 Subject: [PATCH 02/11] use root fot apt --- Dockerfile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7e8c180..bdeacf3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,13 @@ FROM codercom/code-server:4.4.0 ARG PYTHON_VERSION=3.10 -# Install common softwares -RUN apt-get -y update && \ +USER root + +# Install system libraries +RUN sudo apt-get -y update && \ curl -s https://raw.githubusercontent.com/InseeFrLab/onyxia/main/resources/common-software-docker-images.sh | bash -s && \ apt-get install -y --no-install-recommends cmake g++ && \ - rm -rf /var/lib/apt/lists/* + sudo rm -rf /var/lib/apt/lists/* # Install QUARTO ARG QUARTO_VERSION="0.9.508" @@ -46,3 +48,5 @@ RUN code-server --install-extension ms-azuretools.vscode-docker RUN code-server --install-extension njpwerner.autodocstring RUN code-server --install-extension redhat.vscode-yaml RUN code-server --install-extension quarto.quarto + +USER coder From e47757d8eedbba3d7140c41716e1b2463b752c71 Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 13:43:42 +0000 Subject: [PATCH 03/11] fix echo --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index bdeacf3..2e46fff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,8 +31,8 @@ COPY environment.yml . RUN mamba env update -n basesspcloud -f environment.yml # Use basesspcloud env by default -RUN '. "/home/coder/local/bin/conda/etc/profile.d/conda.sh"' >> /home/coder/.bashrc -RUN 'conda activate basesspcloud' >> /home/coder/.bashrc +RUN echo '. "/home/coder/local/bin/conda/etc/profile.d/conda.sh"' >> /home/coder/.bashrc +RUN echo 'conda activate basesspcloud' >> /home/coder/.bashrc ENV PATH="/home/coder/local/bin/conda/envs/basesspcloud/bin:${PATH}" RUN echo "export PATH=$PATH" >> /home/coder/.bashrc From 108f8c41856a8a53bf27aace37dc294866cb0afe Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:04:36 +0000 Subject: [PATCH 04/11] use sudo --- Dockerfile | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e46fff..9a72d74 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,21 @@ FROM codercom/code-server:4.4.0 ARG PYTHON_VERSION=3.10 -USER root - # Install system libraries RUN sudo apt-get -y update && \ - curl -s https://raw.githubusercontent.com/InseeFrLab/onyxia/main/resources/common-software-docker-images.sh | bash -s && \ - apt-get install -y --no-install-recommends cmake g++ && \ + curl -s https://raw.githubusercontent.com/InseeFrLab/onyxia/main/resources/common-software-docker-images.sh | sudo bash -s && \ + sudo apt-get install -y --no-install-recommends cmake g++ && \ sudo rm -rf /var/lib/apt/lists/* # Install QUARTO ARG QUARTO_VERSION="0.9.508" RUN wget "https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-amd64.deb" -RUN apt install "./quarto-${QUARTO_VERSION}-linux-amd64.deb" +RUN sudo apt install "./quarto-${QUARTO_VERSION}-linux-amd64.deb" # INSTALL MINICONDA ------------------------------- ARG CONDA_DIR=/home/coder/local/bin/conda RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -RUN bash Miniconda3-latest-Linux-x86_64.sh -b -p $CONDA_DIR +RUN sudo bash Miniconda3-latest-Linux-x86_64.sh -b -p $CONDA_DIR RUN rm -f Miniconda3-latest-Linux-x86_64.sh # Install mamba (speed up packages install with conda) @@ -37,7 +35,6 @@ ENV PATH="/home/coder/local/bin/conda/envs/basesspcloud/bin:${PATH}" RUN echo "export PATH=$PATH" >> /home/coder/.bashrc # Additional VSCode settings -# Put in remote settings because : https://github.com/coder/code-server/issues/4609 RUN mkdir -p /home/coder/.local/share/code-server/User/ COPY settings.json /home/coder/.local/share/code-server/User/settings.json @@ -48,5 +45,3 @@ RUN code-server --install-extension ms-azuretools.vscode-docker RUN code-server --install-extension njpwerner.autodocstring RUN code-server --install-extension redhat.vscode-yaml RUN code-server --install-extension quarto.quarto - -USER coder From 8cd2d187a2451d033cb5b14d17a5a1746814340f Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:10:57 +0000 Subject: [PATCH 05/11] fix permissions --- Dockerfile | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9a72d74..3a0cdd8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,23 @@ FROM codercom/code-server:4.4.0 ARG PYTHON_VERSION=3.10 +USER root + # Install system libraries -RUN sudo apt-get -y update && \ - curl -s https://raw.githubusercontent.com/InseeFrLab/onyxia/main/resources/common-software-docker-images.sh | sudo bash -s && \ - sudo apt-get install -y --no-install-recommends cmake g++ && \ - sudo rm -rf /var/lib/apt/lists/* +RUN apt-get -y update && \ + curl -s https://raw.githubusercontent.com/InseeFrLab/onyxia/main/resources/common-software-docker-images.sh | bash -s && \ + apt-get install -y --no-install-recommends cmake g++ && \ + rm -rf /var/lib/apt/lists/* # Install QUARTO ARG QUARTO_VERSION="0.9.508" RUN wget "https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-amd64.deb" -RUN sudo apt install "./quarto-${QUARTO_VERSION}-linux-amd64.deb" +RUN apt install "./quarto-${QUARTO_VERSION}-linux-amd64.deb" # INSTALL MINICONDA ------------------------------- ARG CONDA_DIR=/home/coder/local/bin/conda RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -RUN sudo bash Miniconda3-latest-Linux-x86_64.sh -b -p $CONDA_DIR +RUN bash Miniconda3-latest-Linux-x86_64.sh -b -p $CONDA_DIR RUN rm -f Miniconda3-latest-Linux-x86_64.sh # Install mamba (speed up packages install with conda) @@ -38,6 +40,8 @@ RUN echo "export PATH=$PATH" >> /home/coder/.bashrc RUN mkdir -p /home/coder/.local/share/code-server/User/ COPY settings.json /home/coder/.local/share/code-server/User/settings.json +USER coder + # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python RUN code-server --install-extension ms-kubernetes-tools.vscode-kubernetes-tools From c91169dbcbd7223728615d68f5dae85817962e81 Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:20:35 +0000 Subject: [PATCH 06/11] fix permissions --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3a0cdd8..6644e76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,12 +36,13 @@ RUN echo 'conda activate basesspcloud' >> /home/coder/.bashrc ENV PATH="/home/coder/local/bin/conda/envs/basesspcloud/bin:${PATH}" RUN echo "export PATH=$PATH" >> /home/coder/.bashrc +# Switch back to non-root user +USER coder + # Additional VSCode settings RUN mkdir -p /home/coder/.local/share/code-server/User/ COPY settings.json /home/coder/.local/share/code-server/User/settings.json -USER coder - # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python RUN code-server --install-extension ms-kubernetes-tools.vscode-kubernetes-tools From 4b158a324756337e8f38b850005d41e746cc3e8b Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:43:48 +0000 Subject: [PATCH 07/11] distinguish User and Machine settings --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6644e76..033c872 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,8 +40,8 @@ RUN echo "export PATH=$PATH" >> /home/coder/.bashrc USER coder # Additional VSCode settings -RUN mkdir -p /home/coder/.local/share/code-server/User/ -COPY settings.json /home/coder/.local/share/code-server/User/settings.json +COPY settings/User /home/coder/.local/share/code-server/User +COPY settings/Machine /home/coder/.local/share/code-server/Machine # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python From a54cd796c309cbb447fe159ef3bfc4a9b49eef6c Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:45:17 +0000 Subject: [PATCH 08/11] fix paths --- settings/Machine/settings.json | 3 +++ settings.json => settings/User/settings.json | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 settings/Machine/settings.json rename settings.json => settings/User/settings.json (60%) diff --git a/settings/Machine/settings.json b/settings/Machine/settings.json new file mode 100644 index 0000000..ae7586d --- /dev/null +++ b/settings/Machine/settings.json @@ -0,0 +1,3 @@ +{ + "python.defaultInterpreterPath": "/home/coder/local/bin/conda/envs/basesspcloud/bin/python" +} \ No newline at end of file diff --git a/settings.json b/settings/User/settings.json similarity index 60% rename from settings.json rename to settings/User/settings.json index 05f708c..0d3bd7d 100644 --- a/settings.json +++ b/settings/User/settings.json @@ -3,8 +3,6 @@ "security.workspace.trust.enabled": false, "security.workspace.trust.startupPrompt": "never", "terminal.integrated.inheritEnv": false, - "python.pythonPath": "/home/coder/local/bin/conda/envs/basesspcloud/bin/python", - "python.defaultInterpreterPath": "/home/coder/local/bin/conda/envs/basesspcloud/bin/python", "python.linting.flake8Enabled": true, "python.testing.pytestEnabled": true } From 2414c5796048182ac8e7d7aaea861b446fe5833e Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:57:10 +0000 Subject: [PATCH 09/11] fix paths --- Dockerfile | 6 ++++-- settings/{Machine/settings.json => Machine.json} | 0 settings/{User/settings.json => User.json} | 0 3 files changed, 4 insertions(+), 2 deletions(-) rename settings/{Machine/settings.json => Machine.json} (100%) rename settings/{User/settings.json => User.json} (100%) diff --git a/Dockerfile b/Dockerfile index 033c872..922b1aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,8 +40,10 @@ RUN echo "export PATH=$PATH" >> /home/coder/.bashrc USER coder # Additional VSCode settings -COPY settings/User /home/coder/.local/share/code-server/User -COPY settings/Machine /home/coder/.local/share/code-server/Machine +RUN mkdir -p /home/coder/.local/share/code-server/User/ +COPY User.json /home/coder/.local/share/code-server/User/settings.json +RUN mkdir -p /home/coder/.local/share/code-server/Machine/ +COPY Machine.json /home/coder/.local/share/code-server/Machine/settings.json # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python diff --git a/settings/Machine/settings.json b/settings/Machine.json similarity index 100% rename from settings/Machine/settings.json rename to settings/Machine.json diff --git a/settings/User/settings.json b/settings/User.json similarity index 100% rename from settings/User/settings.json rename to settings/User.json From f504465a6b7e75dc3cb6092dfe8f2535cf705bc7 Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 14:58:11 +0000 Subject: [PATCH 10/11] fix paths --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 922b1aa..f706383 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,9 +41,9 @@ USER coder # Additional VSCode settings RUN mkdir -p /home/coder/.local/share/code-server/User/ -COPY User.json /home/coder/.local/share/code-server/User/settings.json +COPY settings/User.json /home/coder/.local/share/code-server/User/settings.json RUN mkdir -p /home/coder/.local/share/code-server/Machine/ -COPY Machine.json /home/coder/.local/share/code-server/Machine/settings.json +COPY settings/Machine.json /home/coder/.local/share/code-server/Machine/settings.json # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python From 4902420dd76c17ce92b1ca12fa09597316ecc325 Mon Sep 17 00:00:00 2001 From: avouacr Date: Fri, 3 Jun 2022 15:14:33 +0000 Subject: [PATCH 11/11] fix permissions --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f706383..58b8839 100644 --- a/Dockerfile +++ b/Dockerfile @@ -41,9 +41,9 @@ USER coder # Additional VSCode settings RUN mkdir -p /home/coder/.local/share/code-server/User/ -COPY settings/User.json /home/coder/.local/share/code-server/User/settings.json +COPY --chown=coder:coder settings/User.json /home/coder/.local/share/code-server/User/settings.json RUN mkdir -p /home/coder/.local/share/code-server/Machine/ -COPY settings/Machine.json /home/coder/.local/share/code-server/Machine/settings.json +COPY --chown=coder:coder settings/Machine.json /home/coder/.local/share/code-server/Machine/settings.json # INSTALL VSTUDIO EXTENSIONS RUN code-server --install-extension ms-python.python