Git Product home page Git Product logo

edu_with_docker's Introduction

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

Когда я пошел на курсы, стало нужно писать по чуть-чуть на разных языках программирования. И каждый из них тащил свои зависимости, которыми не хотелось засорять компьютер. Тогда возникла идея воспользоваться 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 [email protected]
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 "[email protected]" -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. Создаем или клонируем репозиторий и наслаждаемся чистотой в системе =)

edu_with_docker's People

Contributors

lexx-esc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.