По состоянию на конец 2018 года Удаленная разработка в CLion довольно проста в настройке.Все, что нам нужно сделать, это настроить док-контейнер в качестве нашего «Удаленного хоста».
Я использовал руководство в https://github.com/shuhaoliu/docker-clion-dev в качестве справочного материала и внес несколько изменений.Вот что сработало для меня:
(Необязательно) Если у вас не установлен плагин Docker для CLion, получите его, следуя этим инструкциям .
Шаг 1 -Dockerfile
Измените этот Dockerfile , чтобы установить любые зависимости, необходимые для вашего проекта.Добавьте файл Docker в ваш проект.
FROM ubuntu:cosmic
########################################################
# Essential packages for remote debugging and login in
########################################################
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
apt-utils gcc g++ openssh-server cmake build-essential gdb gdbserver rsync vim
RUN mkdir /var/run/sshd
RUN echo 'root:root' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
# 22 for ssh server. 7777 for gdb server.
EXPOSE 22 7777
RUN useradd -ms /bin/bash debugger
RUN echo 'debugger:pwd' | chpasswd
########################################################
# Add custom packages and development environment here
########################################################
########################################################
CMD ["/usr/sbin/sshd", "-D"]
Шаг 2 - Docker Compose
В том же каталоге, что и предыдущий файл Docker, создайте файл docker-compose.yaml.
# From: https://github.com/shuhaoliu/docker-clion-dev/blob/master/docker-compose.yml
version: '3'
services:
gdbserver:
build:
context: ./
dockerfile: ./Dockerfile
image: clion_dev
security_opt:
- seccomp:unconfined
container_name: debug
ports:
- "7776:22"
- "7777:7777"
volumes:
- .:/home/debugger/code
working_dir: /home/debugger/code
hostname: debug
Шаг 3
Убедитесь, что файлы Dockerfile
и docker-compose.yml
находятся в одном каталоге.
Опция 3A (с подключаемым модулем CLion Docker)
Щелкните правой кнопкой мыши файл docker-compose.yml
и выберите Run
.
Через минуту или две контейнер должен быть создан и доступен для просмотра из Clion'sВкладка Docker.
Опция 3B (без подключаемого модуля док-станции CLion)
Из каталога, содержащего Dockerfile
и docker-compose.yml
файлы, запустите:
docker-compose up -d
Шаг 4 - Настройте набор инструментов
Откройте Настройки-> Построение, Выполнение, Депликация -> Наборы инструментов и создайтеновый Удаленный хост Набор инструментов.
В поле Учетные данные щелкните небольшую папку с правой стороны и введите учетные данные дляпользователь отладчика, созданный в Dockerfile.
В приведенном выше примере имя пользователя - «отладчик», а пароль - «pwd».
Шаг 5 - Профиль CMake
Теперь мы должны настроить профиль CMake, чтобы использовать наш новый набор инструментов для удаленного хоста.
Перейдите к Настройки-> Построение, Выполнение, Депиляция -> Cmake исоздать новый профиль.Единственное необходимое изменение - это выбор набора инструментов, созданного на предыдущем шаге.
Шаг 6 - Запуск / отладка программы
На вкладке CMake убедитесь, чточто вы выбрали вновь созданный профиль CMake.
После загрузки проекта CMake в контейнер вы сможете выбрать CMakeProfile, который вынравится использовать в переключателе конфигурации запуска в правом верхнем углу CLion.
Надеюсь, если все прошло хорошо, вы теперь сможете запустить икод ebug в контейнере Docker!
Если что-то пошло не по плану, вот несколько ссылок, которые помогли мне заставить работать: