From bb3d7ec9d96c81a3502a5a4abe7ca675b099cb36 Mon Sep 17 00:00:00 2001 From: ilia Nikiforov Date: Wed, 10 Jul 2024 12:15:07 -0500 Subject: [PATCH] retain IDE documentation from hackathon --- README.md | 34 ++++++++++++++++++++++++++++++++++ doc_img/vscode.png | Bin 0 -> 28459 bytes 2 files changed, 34 insertions(+) create mode 100644 doc_img/vscode.png diff --git a/README.md b/README.md index aacc290..1aa23ac 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,8 @@ Alternatively, if you want the full image, do this: docker pull ghcr.io/openkim/developer-platform docker run -it --name kim_dev ghcr.io/openkim/developer-platform bash ``` +*NOTE:* If you wish to install and use JupyterLab to work in your container (see section regarding IDEs at the bottom of the page), you must expose a port by e.g. adding the argument `-p 8888:8888` to your `docker run` command. + The container will automatically stop when you close the original bash session that was opened by doing `docker run` above; this can be verified by doing `docker ps`, which will reveal no running containers. This will *not* cause @@ -161,6 +163,38 @@ resource allocation on a container-by-container basis can be found at https://docs.docker.com/config/containers/resource_constraints/. In linux, resource control must be done on a container-by-container basis. +## IDEs (VSCode and Jupyter Lab) + +To work inside the container using VSCode, you can use the "Dev Containers" +extension which should be installed by default. Select "Remote Explorer" in +the left sidebar, then choose "Dev Containers" in the drop down menu. Your +container should be under "Other Containers", and you can attach VSCode to it +using one of the icons on the right. See image below with relevant UI elements: + +![VSCode screenshot](doc_img/vscode.png) + +Once you have attached VSCode to your container once, it will appear under +"Dev Containers" rather than "Other Containers". + +To use Jupyter Lab to access the container, you must have issued your `docker run` command +with the option to expose a port (e.g. `-p 8888:8888`). Then, you can install Jupyter Lab using +``` +sudo pip install jupyterlab +``` +It is a large installation, so we do not include it as not all users will need it. Then you can use JupyterLab by running + +``` +jupyter lab --ip 0.0.0.0 +``` +inside the container, or from your host terminal by running +``` +docker exec kim_dev jupyter lab --ip 0.0.0.0 +``` +where `kim_dev` should be replaced if you named your container something different. +You should now be able to access the Jupyter Lab IDE inside your container by +pointing your browser at one of the displayed URLs (typically the one starting with `http://127.0.0.1:8888/lab?token=`). + + ## References [1] "The OpenKIM Processing Pipeline: A Cloud-Based Automatic Materials diff --git a/doc_img/vscode.png b/doc_img/vscode.png new file mode 100644 index 0000000000000000000000000000000000000000..86694c7c4fc996602346217c1858deb4250c9de8 GIT binary patch literal 28459 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 literal 0 HcmV?d00001