Как стать автором
Обновить

Комментарии 11

Какой смысл использовать ВМ, в то время как в самой винде есть ubuntu bash на которой можно развернуть все тоже самое?!
Так уж случилось, что у меня еще есть Win7, в которой этого нет, но я работаю в ней с тем же подходом.
Я сомневаюсь, что до текущего момента все компании поголовно перешли на Win10.

используйте vagrant например для подобных историй.


настройку машины можно сложить в provision

docker прикольная вещь и она довольно быстро стартует, по сравнению со связкой vagrant + virtualbox только там всякие забавы идут с windows и mac и есть подход в котором докер крутится внутри виртуалки.


Поэтому все же проще vagrant + virtualbox
У него есть минусы:


  1. Потребляет лишнюю память и cpu (в среднем 1gb ram и проц)
  2. Разворачивается не быстро (в среднем 1 минута).
  3. На больших проектах синхронизация файлов по умолчанию тормозит (обычно используют rsync или nfs что выливается в пляски с windows хорошо если лицензия корпоративная или проффесиональная)

Но есть и огромное количество плюсов
по поводу provision, не обязательно использовать что то типо chef, ansible или puppet, можно просто использовать bash script в простых случаях как вы описали выше.


Вообщем если есть на это спрос могу написать конечно статью на хабр на эту тему как я разворачиваю окружение ну и конфиг соответственный.

Мне будет очень интересно посмотреть, как это реализовали другие люди, так как от DevOps я относительно далеко, но уж очень интересно посмотреть.

дело в том что я не devops а обычный разработчик, просто люблю комфортную работу и хорошо умею настрайвать всякие штуки.

я например использую docker так:

1) в системе крутится DNS docker контейнер tonistiigi/dnsdock

2) через docker-compose.yml описываю проект
например
version: '2'
services:
   project_db:
      image: mysql:{версия}
   ....
      environment:
         DNSDOCK_NAME: project
         DNSDOCK_IMAGE: db
   project_php:
      build: ./php{версия}
   ....
   project_nginx:
      depends_on:
         - project_php
      image: nginx
   ....
      environment:
         DNSDOCK_NAME: project
         DNSDOCK_IMAGE: site


3) кастую docker-compose up -d

получаю проект mysql + php-fpm + nginx

в итоге на хост машине
mysql доступен по адресу project.db.docker например для workbench
nginx доступен по адресу http://project.site.docker

могу остановить в любой момент, поднять несколько разных проектов с разными версиями БД и php.

на самой хост машине mysql снес, php только версии 7.1
Про Shared Folders хочу добавить — адски тормозят на hdd. То что должно происходить 30 мс может длиться 2.5 сек, зависит от количества операций с файлами. Года полтора-два промучился, выяснилось что это из-за них, проблема известна и нерешаема. Решил уйти от этой схемы и первым делом попробовал через самбу примонтировать. PhpStorm впадает в практически бесконечную переиндексацию. Переключение ветки может всё повесить на несколько минут, поиск по всем файлам невозможен, хоть на ночь оставляй. Да и просто тормозит при навигации по проекту, выдаче подсказок и т. д. Начал искать еще варианты и нашел вот это: https://habrahabr.ru/post/139348/. Очень хорошо работает, за время перехода в браузер и нажатие ф5 на сервере уже будет всё как надо. Единственное неудобство это то, что синхронизация односторонняя и сгенерированные на сервере файлы приходится скачивать вручную.
Интересный подход. Несколько раз смотрел в эту сторону, но нет. Мне действительно нужна двусторонняя синхронизация. Одна из причин — как ни крути, но в unix консоль более удобна и приятная в использовании чем cmd и windows решение для GIT.

Еще я рассматривал монтирование с использованием SSHFS for Win, но PHPStorm постоянно засыпал меня уведомления, что GIT «упал» и все. Попытки решить проблему не увенчались успехом. Возможно нужно ждать обновлений.
Решение проблемы нашел сегодня:
неправильный права доступа
$ find <somerepo>/.git -ls | grep 'r--r--r--'
$ chmod 0644 {file-path}
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории