lexx-esc / edu_with_docker

Когда изучаешь много языков программирование, а загаживать систему зависимостями не хочестя

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Учебная платформа. Зачем?

Когда я пошел на курсы, стало нужно писать по чуть-чуть на разных языках программирования. И каждый из них тащил свои зависимости, которыми не хотелось засорять компьютер. Тогда возникла идея воспользоваться docker (а заодно - и познакомится с ним).

Не хотелось сильно мудрить, поэтому решил, что будет единая база, а на нее будут достраиваться образы необходимых библиотек и инструментов. Ознакомится с их содержимым можно тут:

По мере добавления инструментов, будут добавляться и потомки.

Как использовать?

Конечно, цель - автоматизировать все. Но, пока, многое приходится настраивать руками. Эта инструкция построена на примере образа edu_dotnet, но работа с остальными полностью аналогична

  1. Скачиваем образ (или создаем сами на основании вложенного Dockerfile)
$ docker pull lexxesc/edu_platform
$ docker pull lexxesc/edu_dotnet

или

$ docker build -t lexxesc/edu_dotnet

А потом запускаем сборку контейнера

S docker run -p 23:22 -v /full/path/my/project:/app -d --name dotnet lexxesc/edu_dotnet

Если хотите все оставить внутри приложения, ключ -v и его параметры можно не прописывать

  1. Проверяем что контейнер работает
$ docker ps
CONTAINER ID   IMAGE                COMMAND               CREATED          STATUS          PORTS                NAMES
1b5d5af97650   lexxesc/dotnet_edu   "/usr/sbin/sshd -D"   1 minute ago   Up 1 minute   0.0.0.0:23->22/tcp   pensive_euclid
  1. Заходим внутрь контейнера для настройки
$ docker exec -it 1b5d zsh
  1. Настраиваем пароль root (да - работать будем от него, и да - приветствие изменено)
app > passwd
Новый пароль: 
Повторите ввод нового пароля:
passwd: пароль успешно обновлён
app >
  1. Настраиваем git
app > git config --global user.name John Doe
app > git config --global user.email doe.john@yahoo.com
app > git config --global init.defaultbranch main
app > git config --global core.quotepath false
app > cd && mkdir .ssh && cd .ssh && ssh-keygen -t ed25519 -C "doe.john@yahoo.com" -f "DoeJohn"
.ssh > echo 'Host github.com\n    HostName github.com\n    User git\n    IdentityFile ~/.ssh/DoeJohn' >> config

Публичный ключ нужно прописать в репозиторий (на github есть подробная инструкция)

  1. Устанавливаем в VSCode расширение от Microsoft remote-ssh

gif

Подключаемся к хосту открываем папку /app и терминал к ней

$ ssh root@ip_host -p 23
  1. Внимание!!! Русского языка в терминале VSCode по умолчанию - нет. Нужно чуть подстроить локаль, чтобы она нормально подхватывалась.
app > locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales

и следуем инструкциям.

После перезагрузки контейнера русский язык появится.

  1. Создаем или клонируем репозиторий и наслаждаемся чистотой в системе =)

About

Когда изучаешь много языков программирование, а загаживать систему зависимостями не хочестя


Languages

Language:Dockerfile 93.3%Language:Shell 6.7%