From 9c2ef41d26be1d24ce4818fc6b559da718f16dcd Mon Sep 17 00:00:00 2001 From: Valerii Rublev Date: Wed, 24 Sep 2025 20:03:25 +0300 Subject: [PATCH 1/4] add dev container for clone issue --- lab/vtsh/.devcontainer/devcontainer.json | 37 ++++++++++++++++++++++++ lab/vtsh/Dockerfile | 35 ++++++++++++++++++++++ lab/vtsh/docker-compose.yml | 21 ++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 lab/vtsh/.devcontainer/devcontainer.json create mode 100644 lab/vtsh/Dockerfile create mode 100644 lab/vtsh/docker-compose.yml diff --git a/lab/vtsh/.devcontainer/devcontainer.json b/lab/vtsh/.devcontainer/devcontainer.json new file mode 100644 index 0000000..d36adc5 --- /dev/null +++ b/lab/vtsh/.devcontainer/devcontainer.json @@ -0,0 +1,37 @@ +{ + "name": "vtsh-linux", + "dockerComposeFile": "../docker-compose.yml", + "service": "dev", + "workspaceFolder": "/workspace", + "runArgs": [ + "--cap-add=SYS_PTRACE", + "--security-opt", + "seccomp=unconfined" + ], + "remoteUser": "root", + "features": {}, + "postCreateCommand": "bash -lc 'cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug'", + "customizations": { + "vscode": { + "extensions": [ + "ms-vscode.cpptools", + "ms-vscode.cmake-tools", + "twxs.cmake", + "ms-python.python", + "ms-python.vscode-pylance" + ], + "settings": { + "cmake.sourceDirectory": "/workspace", + "cmake.buildDirectory": "/workspace/build", + "cmake.generator": "Ninja", + "C_Cpp.default.compilerPath": "/usr/bin/gcc", + "C_Cpp.default.includePath": [ + "/usr/include", + "/usr/include/x86_64-linux-gnu" + ] + } + } + } +} + + diff --git a/lab/vtsh/Dockerfile b/lab/vtsh/Dockerfile new file mode 100644 index 0000000..2e949e4 --- /dev/null +++ b/lab/vtsh/Dockerfile @@ -0,0 +1,35 @@ +FROM ubuntu:24.04 + +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=UTC + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + cmake \ + ninja-build \ + gdb \ + git \ + pkg-config \ + python3 \ + python3-pip \ + python3-venv \ + python3-dev \ + linux-libc-dev \ + manpages-dev \ + clang-format \ + strace \ + sudo \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +RUN update-ca-certificates + +RUN apt-get update && apt-get install -y --no-install-recommends python3-pytest && rm -rf /var/lib/apt/lists/* +WORKDIR /workspace + +ENV CC=gcc CXX=g++ +ENV PYTHONUNBUFFERED=1 + +CMD ["bash"] + + diff --git a/lab/vtsh/docker-compose.yml b/lab/vtsh/docker-compose.yml new file mode 100644 index 0000000..d68f7d8 --- /dev/null +++ b/lab/vtsh/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.9" +services: + dev: + build: + context: . + dockerfile: Dockerfile + args: + USER_UID: ${UID:-1000} + USER_GID: ${GID:-1000} + image: vtsh-dev:latest + container_name: vtsh-dev + volumes: + - .:/workspace:delegated + working_dir: /workspace + tty: true + stdin_open: true + environment: + - PYTHONPATH=/workspace/test + command: tail -f /dev/null + + From 4102fe006d9d3d67a867297d99d00c665fa7111a Mon Sep 17 00:00:00 2001 From: Valerii Rublev Date: Sun, 12 Oct 2025 18:10:00 +0300 Subject: [PATCH 2/4] docker-compose delete + clang --- lab/vtsh/.devcontainer/Dockerfile | 38 ++++++++++++++++++++++++ lab/vtsh/.devcontainer/devcontainer.json | 30 ++++++++++++------- 2 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 lab/vtsh/.devcontainer/Dockerfile diff --git a/lab/vtsh/.devcontainer/Dockerfile b/lab/vtsh/.devcontainer/Dockerfile new file mode 100644 index 0000000..f4f4eaf --- /dev/null +++ b/lab/vtsh/.devcontainer/Dockerfile @@ -0,0 +1,38 @@ +FROM silkeh/clang:latest + +# Установка только необходимых утилит для разработки +RUN apt-get update && apt-get install -y \ + # Python для тестов + python3 \ + python3-pip \ + python3-venv \ + python3-dev \ + python3-pytest \ + + build-essential \ + cmake \ + ninja-build \ + + + lldb \ + + clang-format \ + clang-tidy \ + clangd \ + + valgrind \ + strace \ + ltrace \ + + && rm -rf /var/lib/apt/lists/* + +# Установка lldb-mi из GitHub + + +# Установка рабочей директории +WORKDIR /workspace + + +# Настройка переменных окружения +ENV CC=clang CXX=clang++ CMAKE_EXPORT_COMPILE_COMMANDS=ON + diff --git a/lab/vtsh/.devcontainer/devcontainer.json b/lab/vtsh/.devcontainer/devcontainer.json index d36adc5..ed62cbd 100644 --- a/lab/vtsh/.devcontainer/devcontainer.json +++ b/lab/vtsh/.devcontainer/devcontainer.json @@ -1,6 +1,9 @@ { "name": "vtsh-linux", - "dockerComposeFile": "../docker-compose.yml", + "build": { + "dockerfile": "Dockerfile", + "context": ".." + }, "service": "dev", "workspaceFolder": "/workspace", "runArgs": [ @@ -9,29 +12,36 @@ "seccomp=unconfined" ], "remoteUser": "root", + "mounts": [ + "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached" + ], "features": {}, - "postCreateCommand": "bash -lc 'cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug'", + "postCreateCommand": "rm -rf build && bash -lc \"cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS='-O0 -g -gdwarf-4 -fno-omit-frame-pointer'\"", "customizations": { "vscode": { "extensions": [ "ms-vscode.cpptools", "ms-vscode.cmake-tools", - "twxs.cmake", - "ms-python.python", - "ms-python.vscode-pylance" + "llvm-vs-code-extensions.vscode-clangd", + "vadimcn.vscode-lldb", + "ms-vscode.cpptools-extension-pack", + "ms-vscode.makefile-tools", + "ms-vscode.hexeditor" ], "settings": { "cmake.sourceDirectory": "/workspace", "cmake.buildDirectory": "/workspace/build", "cmake.generator": "Ninja", - "C_Cpp.default.compilerPath": "/usr/bin/gcc", + "C_Cpp.default.compilerPath": "/usr/bin/clang", "C_Cpp.default.includePath": [ "/usr/include", "/usr/include/x86_64-linux-gnu" - ] + ], + "lldb.executable": "/usr/bin/lldb", + "lldb.launch.expressions": "native", + "lldb.launch.console": "integratedTerminal", + "lldb.launch.externalConsole": false } } } -} - - +} \ No newline at end of file From 80112a562cb77df485f6602b04bfa0f27c1b739c Mon Sep 17 00:00:00 2001 From: Valerii Rublev Date: Sun, 12 Oct 2025 18:16:32 +0300 Subject: [PATCH 3/4] really delete docker-compose --- lab/vtsh/Dockerfile | 35 ----------------------------------- lab/vtsh/docker-compose.yml | 21 --------------------- 2 files changed, 56 deletions(-) delete mode 100644 lab/vtsh/Dockerfile delete mode 100644 lab/vtsh/docker-compose.yml diff --git a/lab/vtsh/Dockerfile b/lab/vtsh/Dockerfile deleted file mode 100644 index 2e949e4..0000000 --- a/lab/vtsh/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM ubuntu:24.04 - -ENV DEBIAN_FRONTEND=noninteractive -ENV TZ=UTC - -RUN apt-get update && apt-get install -y --no-install-recommends \ - build-essential \ - cmake \ - ninja-build \ - gdb \ - git \ - pkg-config \ - python3 \ - python3-pip \ - python3-venv \ - python3-dev \ - linux-libc-dev \ - manpages-dev \ - clang-format \ - strace \ - sudo \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* - -RUN update-ca-certificates - -RUN apt-get update && apt-get install -y --no-install-recommends python3-pytest && rm -rf /var/lib/apt/lists/* -WORKDIR /workspace - -ENV CC=gcc CXX=g++ -ENV PYTHONUNBUFFERED=1 - -CMD ["bash"] - - diff --git a/lab/vtsh/docker-compose.yml b/lab/vtsh/docker-compose.yml deleted file mode 100644 index d68f7d8..0000000 --- a/lab/vtsh/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: "3.9" -services: - dev: - build: - context: . - dockerfile: Dockerfile - args: - USER_UID: ${UID:-1000} - USER_GID: ${GID:-1000} - image: vtsh-dev:latest - container_name: vtsh-dev - volumes: - - .:/workspace:delegated - working_dir: /workspace - tty: true - stdin_open: true - environment: - - PYTHONPATH=/workspace/test - command: tail -f /dev/null - - From b7ec61a0b8103e2d12725522c163c9daa81781e5 Mon Sep 17 00:00:00 2001 From: Valerii Rublev Date: Tue, 21 Oct 2025 11:40:45 +0300 Subject: [PATCH 4/4] Update CI and dev container to use Ubuntu 24.04 and install necessary dependencies --- .github/workflows/vtsh.yml | 7 ++++++- lab/vtsh/.devcontainer/Dockerfile | 4 +--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/vtsh.yml b/.github/workflows/vtsh.yml index 2fbfefe..137d909 100644 --- a/.github/workflows/vtsh.yml +++ b/.github/workflows/vtsh.yml @@ -17,13 +17,18 @@ jobs: - Release runs-on: ubuntu-latest container: - image: silkeh/clang:latest + image: ubuntu:24.04 defaults: run: working-directory: ./lab/vtsh steps: - name: Checkout uses: actions/checkout@v4 + + - name: Install dependencies + run: | + apt-get update + apt-get install -y clang clang-tidy clang-format cmake make python3 python3-pip git - name: Clang Format run: | diff --git a/lab/vtsh/.devcontainer/Dockerfile b/lab/vtsh/.devcontainer/Dockerfile index f4f4eaf..48ee413 100644 --- a/lab/vtsh/.devcontainer/Dockerfile +++ b/lab/vtsh/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM silkeh/clang:latest +FROM ubuntu:24.04 # Установка только необходимых утилит для разработки RUN apt-get update && apt-get install -y \ @@ -12,8 +12,6 @@ RUN apt-get update && apt-get install -y \ build-essential \ cmake \ ninja-build \ - - lldb \ clang-format \