From fc228db43158101e2521bcc9b40639133632d8e1 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Mon, 13 Jan 2025 11:55:12 +0100 Subject: [PATCH] added devcontainer support for vscode (#992) * added devcontainer support * added nodejs & npm to image --------- Co-authored-by: Kyriakos Akriotis --- .devcontainer/Dockerfile | 29 +++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 20 ++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 000000000..2c39972c7 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,29 @@ +# use latest python 3 alpine image. +FROM python:3-alpine + +# install system dependencies. +RUN apk update && apk add --no-cache \ + gcc libc-dev g++ graphviz git bash go imagemagick inkscape ttf-opensans curl fontconfig xdg-utils \ + nodejs npm + +# install go package. +RUN go install github.com/mingrammer/round@latest + +# install fonts +RUN curl -O https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \ +&& mkdir -p /usr/share/fonts/NotoSansCJKjp \ +&& unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp/ \ +&& rm NotoSansCJKjp-hinted.zip \ +&& fc-cache -fv + +# add go bin to path. +ENV PATH "$PATH:/root/go/bin" + +# project directory. +WORKDIR /usr/src/diagrams + +# Copy the rest of your app's source code from your host to your image filesystem. +COPY . . + +# install python requirements. +RUN pip install black graphviz jinja2 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..ec9c08b74 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,20 @@ +{ + "name": "diagrams", + "build": { + // Path is relative to the devcontainer.json file. + "dockerfile": "Dockerfile" + }, + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python", + "ms-python.debugpy", + "mhutchie.git-graph", + "mutantdino.resourcemonitor", + "tehpeng.diagramspreviewer" + ] + } + }, + "workspaceMount": "source=${localWorkspaceFolder},target=/usr/src/diagrams,type=bind", + "workspaceFolder": "/usr/src/diagrams" +} \ No newline at end of file