mashletov
@mashletov
Math.random()

Локальная разработка и Docker?

Пользуюсь маком. Сейчас разрабатываю сайты без vargrant'а или docker'a. Просто и по колхозному: использую обычный хостинг как дев-сервер. То есть даже не локально. На совсем небольший проектах прям на проде пилю, да простит меня б-г. Локально держу лишь пхп. В основном, из-за композера, чтобы навигация по коду вендора была. Ну и галп для минификации и прочего. Git еще.

Всегда есть ощущение, что все это криво. Что нормальные люди так не делают. Хочется как-то повысить свой уровень.
Вагрант меня напрягает тем, что нужно запускать целую виртуалку, когда твой мак может это все без нее. Есть привкус какой-то избыточности.

Идея докера мне больше понравилась. Есть пару вопросов, прежде чем начну основательно изучать:
  1. Все ли приложения разработки принято использовать в контейнерах? Например, у меня глобально установлены composer, git, node, npm (а так же пакеты less, sass, typescript compliler, gulp). Ладно там PHP со своими версиями, но эти же обычно обратносовместимы и не трубуют хранения зоопарка версий. Да и PhpStorm можно один раз настроить указав путь в Git, ноде, File Watchers. Ведь с докером мне на каждом проекте все эти минификаторы, композеры указывать заново?
  2. Действительно ли оправдано использовать Docker одному или небольшой группой? Возможно, мои проекты не такого уровня, но мне действительно не критично воссоздать dev и prod окружение 1 в 1. Клиенты не крупные, high-load’а нет. Ну и пусть там на боевом крутится php 5.6, когда у меня 7.1. В шторме language-level можно понизить, чтобы совсем косяки не пороть. Или лучше сразу привыкнуть к хорошему? А если ты разрабатываешь с нуля и не знаешь какая будет конфигурация на боевом?
  3. Действительно ли деплой так прост, что заменяет все фтп-заливки, jenkins'ы, git-пуллы? Читал на хабре.
  • Вопрос задан
  • 5950 просмотров
Решения вопроса 2
index0h
@index0h
PHP, Golang. https://github.com/index0h
1. GIT не относится не посредственно окружения для вашего кода, так что его имеет смысл использовать глобальный. А вот всякие composer / php / node / gulp / yarn /... - это часть окружения для выполнения, и их лучше держать прямо в контейнере.

Ладно там PHP со своими версиями, но эти же обычно обратносовместимы и не трубуют хранения зоопарка версий.

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

Да и PhpStorm можно один раз настроить указав путь в Git, ноде, File Watchers.

Это да.

Ведь с докером мне на каждом проекте все эти минификаторы, композеры указывать заново?

Да

Действительно ли оправдано использовать Docker одному или небольшой группой?

Да. Например хотите посмотреть проект годичной давности, но обратная совместимость зависимостей вашего проекта потеряна, такое сплошь и рядом.

Возможно, мои проекты не такого уровня, но мне действительно не критично воссоздать dev и prod окружение 1 в 1.

1 в 1 никто и не создает, а вот максимально похоже по стеку технологий - вот это правильно.

Ну и пусть там на боевом крутится php 5.6, когда у меня 7.1.

В таком окружении смысла нема. Ваш код будет работать по другому, на боевом сервере и на вирутальном окружении.

А если ты разрабатываешь с нуля и не знаешь какая будет конфигурация на боевом?

Ко боевому можно предъявлять требования.

Действительно ли деплой так прост, что заменяет все фтп-заливки, jenkins'ы, git-пуллы?

Нет
Ответ написан
Комментировать
@micronull
Я использую для локальной разработки docker. Это значительно удобнее, чем держать полноценное окружение из зоопарка разных версий php и прочих штук.
Если сайт старый, под какие-нибудь древние версии apache, php и mysql. Не проблема, - смотрю на hub, если нет, то собираю свой.
При этом спокойно можно переключить на другой проект, более современный. Например с nginx, php7 и postgresql. Предварительно выключив предыдущий контейнер.

Далее в перспективе можно спокойно кинуть контейнер на сервер и за пару минут развернуть сервис.

В общем настоятельно рекомендую попробовать docker при локальной разработке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@yaBliznyk
Предлагаю вам присмотреться к проекту Laradock
  1. Отличная документация на сайте
  2. Есть все необходимое из коробки
  3. Более чем полностью пригодно для прода
  4. Сразу привыкаешь к best practice

Позволяет не зависеть от ОС и держать её в чистоте (никаких сервисов для разработки кроме IDE)
Вы очень быстро разберетесь в том, что происходит. Возможно откроете для себя пару полезных сервисов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы