Skip to content

Commit

Permalink
feat: devcontainer
Browse files Browse the repository at this point in the history
  • Loading branch information
leehanchung committed Sep 9, 2023
1 parent 91728f1 commit e50ddfe
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 6 deletions.
15 changes: 13 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
{
"name": "llm-pdf-qa-workshop",
"image": "mcr.microsoft.com/vscode/devcontainers/universal",
"build": {
"dockerfile": "Dockerfile",
"context": "..",
"args": {
"VARIANT": "3.10-bullseye",
"POETRY_VERSION": "1.6.1"
}
},
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers-contrib/features/pre-commit:2": {
"version": "latest"
}
},
"mounts": [
// Re-use local git and ssh configurations
"source=${env:HOME}/.gitconfig,target=/root/.gitconfig,type=bind",
"source=${env:HOME}/.ssh,target=/root/.ssh,type=bind"
],
Expand All @@ -16,8 +25,10 @@
"vscode": {
"extensions": [
"GitHub.copilot",
"esbenp.prettier-vscode",
"njpwerner.autodocstring",
"ms-python.python",
"esbenp.prettier-vscode"
"ms-azuretools.vscode-docker"
]
}
}
Expand Down
17 changes: 14 additions & 3 deletions .devcontainer/post_create_command.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
#!/bin/bash

# do as little as possible in this script to keep the container creation fast.
# for more specific devcontainer use cases use the different devcontainer subfolders.
# strict mode bash script
set -euo pipefail
IFS=$'\n\t'

echo "done"
# allow git usage
git config --global --add safe.directory "*"

# install poetry
curl -sSL https://install.python-poetry.org | python3 -

# create python virtual environment
poetry install --no-root

# start virtual environment
poetry shell
29 changes: 28 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,29 @@
FROM python:3.10-slim
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.231.6/containers/python-3/.devcontainer/base.Dockerfile

# [Choice] Python version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.10, 3.9, 3.8, 3.7, 3.6, 3-bullseye, 3.10-bullseye, 3.9-bullseye, 3.8-bullseye, 3.7-bullseye, 3.6-bullseye, 3-buster, 3.10-buster, 3.9-buster, 3.8-buster, 3.7-buster, 3.6-buster
ARG VARIANT="3.10-bullseye"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi

# Poetry
ARG POETRY_VERSION="none"
RUN if [ "${POETRY_VERSION}" != "none" ]; then su vscode -c "umask 0002 && pip3 install poetry==${POETRY_VERSION}"; fi

# Nox
ARG NOX_VERSION="none"
RUN if [ "${NOX_VERSION}" != "none" ]; then su vscode -c "umask 0002 && pip3 install nox-poetry nox==${NOX_VERSION}"; fi

# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
# COPY requirements.txt /tmp/pip-tmp/
# RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
# && rm -rf /tmp/pip-tmp

# [Optional] Uncomment this section to install additional OS packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
# && apt-get -y install --no-install-recommends <your-package-list-here>

# [Optional] Uncomment this line to install global node packages.
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
2 changes: 2 additions & 0 deletions poetry.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[virtualenvs]
in-project = true

0 comments on commit e50ddfe

Please sign in to comment.