- До начала использования Docker контейнера: Настройка переменных окружения
- Начало работы
- Сборка проекта и запуск тестов
- Дополнительно
Шаблон репозитория для практического задания 5-го спринта «Мидл разработчик С++»
Для корректной работы контейнера добавьте в ваш bash-профиль две переменные окружения и обновите его, выполнив следующие команды:
# Set USER_UID and USER_GID
echo -e '\nexport USER_UID=$(id -u)\nexport USER_GID=$(id -g)' >> ~/.bashrc
# Update bash-profile
source ~/.bashrcПеред началом работы с Docker контейнером, убедитесь, что переменные окружения доступны, внутри используемой вами IDE (например в терминале внутри VS Code):
printf "\nUSER_UID=${USER_UID=}\nUSER_GID=${USER_GID}\n\n"- Убедитесь, что переменные окружения из предыдущего шага доступны внутри вашей IDE
- Нажмите зелёную кнопку
Use this template, затемCreate a new repository. - Назовите свой репозиторий.
- Склонируйте созданный репозиторий командой
git clone your-repository-name. - Создайте новую ветку командой
git switch -c development. - Откройте проект в
Visual Studio Code. - Нажмите
F1и откройте проект в dev-контейнере командойDev Containers: Reopen in Container.
Данный репозиторий использует следующие инструменты:
-
Conan — свободный менеджер пакетов для C и C++ с открытым исходным кодом (MIT). Позволяет настраивать процесс сборки программ, скачивать и устанавливать сторонние зависимости и необходимые инструменты. Подробнее о Conan:
-
CPM.cmake - CMake dependency manager. Поскольку не все пакеты доступны в
Conan, в качестве альтернативы удобно воспользоватьсяCPM.cmake -
cmake — генератор систем сборки для C и C++. Позволяет создавать проекты, которые могут компилироваться на различных платформах и с различными компиляторами. Подробнее о cmake:
-
VS Code Dev Docker container - Docker контейнер, который содержит полностью настроенное окружение для выполнение задания. Подробнее об этой функциональности:
- https://habr.com/ru/articles/822707/ - "Почти все, что вы хотели бы знать про Docker"
- https://code.visualstudio.com/docs/devcontainers/containers - официальная документация VS Code
- https://www.youtube.com/watch?v=p9L7YFqHGk4 - "Docker container for VS Code"
- https://www.youtube.com/watch?v=pg19Z8LL06w&t=174s&pp=ygUPRG9ja2VyY29udGFpbmVy - "Docker in 1 hour"
Используйте F5 для выполнения следующих шагов:
- Создание папки
build - Вызов
conanкоманд для установки требуемых библиотек и запуска процесса сборки - Запуска
lldbотладчика
Также, вы можете запустить только команду построения проекта. Для этого:
-
вызовите командное окно, нажав
F1 -
Выберите команду
Tasks: Run Task
- Выберите команду сборки проекта, например
GCC: Build Debug app
cd build
./GeometryAppДля запуска тестов вы можете воспользоваться удобным расширением C++ TestMate:
В этом репозитории настроен автоматический запуск clang-format (файл конфигурации — .vscode/settings.json) при сохранении любого файла с кодом.
Убедитесь, что эта функциональность работает:
- Добавьте несколько пустых линий в любой файл.
- Сохраните файл.
- Если пустые линии были удалены, всё работает, если нет — убедитесь, что clangd работает (при открытии файла с кодом в самом низу VS Code на голубой полоске должно быть написано clangd: idle). Для этого:
- нажмите
F1и выполните командуclangd: Download language server; - нажмите
F1и выполните командуclangd: Restart language server; - нажмите
F1и выполните командуDeveloper: Reload Window.
- нажмите
В Visual Studio Code настройки параметров для запуска отладчика находятся в файле .vscode/launch.json. Поскольку в этом файле для запуска приложения, которое вычисляет контрольную сумму файла, уже есть одна конфигурация Launch GeometryApp, то для запуска отладчика достаточно нажать F5 или открыть окно Run and Debug комбинацией клавиш Ctrl+Shift+D.
Для настройки автодополнения Ctrl + Space нажмите F1 и выполните команду clangd: Download language server. VS Code сам предложит установить подходящую версию clangd (всплывашка в правом нижнем углу). После завершения установки перезагрузите окно кнопкой перезапуска справа снизу или с помощью F1 и выполните команду Developer: Reload Window.
Если всё сделали правильно, то после успешной сборки проекта вы сможете использовать автодополнение.





