![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Одна из нетривиальных особенностей моей новой компании - что вся разработка идёт на маках. И это довольно удобно, как оказывается. Я больше десяти лет держу мак в качестве основного домашнего компа, так что дело привычное. Мак это очень качественный юникс, надёжный как топор. Все нужные для работы компоненты ставятся через "brew install", а в качестве IDE фирма предоставляет лицензию на CLion. Впрочем, и привычную связку Bash Commander + LE никто не отменял.
После внесения каждого изменения (git push) в облаке происходит автоматическая сборка проекта и прогон тестов. Конечно, сначала собираем и гоняем на локальной машине: Macbook Pro последней модели достаточно мощная машинка для этого. В облаке применяется технология контейнеров Docker. Я уже несколько лет про неё читаю в новостях, а тут она реально работает. Наконец-то идея виртуальных машин приносит практическую пользу.
Запишу коротенькую инструкцию, как установить Docker на мак и начать с ним играться.
(1) Устанавливаем Docker и его компоненты. Там ещё куча компонентов имеется, но мы начнём с минимума:
(3) Создаём виртуальную машину для Docker. Можно иметь много машин для разных целей.
После внесения каждого изменения (git push) в облаке происходит автоматическая сборка проекта и прогон тестов. Конечно, сначала собираем и гоняем на локальной машине: Macbook Pro последней модели достаточно мощная машинка для этого. В облаке применяется технология контейнеров Docker. Я уже несколько лет про неё читаю в новостях, а тут она реально работает. Наконец-то идея виртуальных машин приносит практическую пользу.
Запишу коротенькую инструкцию, как установить Docker на мак и начать с ним играться.
(1) Устанавливаем Docker и его компоненты. Там ещё куча компонентов имеется, но мы начнём с минимума:
(2) Устанавливаем VirtualBox, виртуальную машину, в которой Docker будет запускаться:brew install docker
brew install docker-machine
Установка обломится по причине недостаточных прав доступа, что нормально:brew cask install virtualbox
Чтобы разрешить для VirtualBox установку расширений ядра Unix, зайдите в System Preferences / Security & Privacy и на вкладке General откройте доступ для приложения Oracle VM VirtualBox. После этого повторите "brew cask install virtualbox" - установка пройдёт как надо.Error: Failure while executing; `/usr/bin/sudo -E -- /usr/bin/env LOGNAME=vak USER=vak USERNAME=vak \
/usr/sbin/installer -pkg /usr/local/Caskroom/virtualbox/6.1.2,135662/VirtualBox.pkg \
-target / -applyChoiceChangesXML /var/folders/.../choices20200129-86935-1v43crh.xml` exited with 1.
(3) Создаём виртуальную машину для Docker. Можно иметь много машин для разных целей.
(4) Запускаем виртуальную машину.docker-machine create default
(5) Проверяем конфигурацию получившейся машины Docker:$ docker-machine start
Starting "default"...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
Machine "default" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
(6) Устанавливаем переменные окружения для подключения к этой машине.$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/vak/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
(7) Для проверки запускаем контейнер "hello-world". Бинарный образ hello-world будет скачан из сети:eval $(docker-machine env default)
(8) Пробуем чуть более сложный контейнер с минимальным линуксом Ubuntu:$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
(9) Смотрим список получившихся образов Docker:$ docker run -it ubuntu
root@3765047bde61:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 18714000 411036 17313836 3% /
tmpfs 65536 0 65536 0% /dev
tmpfs 506608 0 506608 0% /sys/fs/cgroup
shm 65536 0 65536 0% /dev/shm
/dev/sda1 18714000 411036 17313836 3% /etc/hosts
tmpfs 506608 0 506608 0% /proc/asound
tmpfs 506608 0 506608 0% /proc/acpi
tmpfs 506608 0 506608 0% /proc/scsi
tmpfs 506608 0 506608 0% /sys/firmware
root@3765047bde61:/# free
total used free shared buff/cache available
Mem: 1013220 83588 193948 290552 735684 640852
Swap: 1195712 0 1195712
root@3765047bde61:/# uname -a
Linux 3765047bde61 4.14.154-boot2docker #1 SMP Thu Nov 14 19:19:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
root@3765047bde61:/# _
Суть всех этих действий в том, что мы получаем автономную виртуальную машину Linux (или много разных машин), в которых можем устанавливать нужные компиляторы и прочий софт, и вести разработку или гонять тесты.$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ccc6e87d482b 13 days ago 64.2MB
hello-world latest fce289e99eb9 13 months ago 1.84kB
Да тем и хороша, что плохая вообще бы посуду у вас не вз
Date: 2020-01-30 22:54 (UTC)Это не unix, не качественный юникс.
no subject
Date: 2020-01-30 23:34 (UTC)no subject
Date: 2020-01-30 23:59 (UTC)Понятно, что для комфортного Мака здесь должен, просто обязан быть компромисс, но не обязательно именно такой.
no subject
Date: 2020-01-30 23:11 (UTC)no subject
Date: 2020-01-31 07:32 (UTC)no subject
Date: 2020-01-31 01:44 (UTC)no subject
Date: 2020-01-31 02:56 (UTC)no subject
Date: 2020-01-31 03:56 (UTC)no subject
Date: 2020-01-31 04:49 (UTC)https://www.percona.com/blog/2016/08/03/testing-docker-multi-host-network-performance/
no subject
Date: 2020-01-31 05:32 (UTC)Фиг подберешь правильные версии всего этого... а тут бац - контейнер готовый:) очень удобно.
no subject
Date: 2020-01-31 06:30 (UTC)no subject
Date: 2020-02-10 10:18 (UTC)Я как-то исторически прилип к вмварежке, она мне стопицот лет жизни сэкономила.