Работа с небольшими средами разработки Docker.
Полную документацию можно найти на https://vessel.shippingdocker.com.
Vessel — это всего лишь небольшой набор файлов, который настраивает локальную среду разработки на основе Docker для каждого проекта. Глобально устанавливать нечего, кроме самого Docker!
Это все, что нужно для его использования:
композитору требуется докер/судно php artisanvendor:publish --provider="VesselVesselServiceProvider"# Запустите это один раз, чтобы инициализировать проект# Должен запускаться с "bash" до инициализации судна initializedbash ./старт судна
Перейдите на http://localhost
в своем браузере и увидите свой сайт Laravel!
Если вы используете Lumen, вам нужно будет скопировать файлы Vessel вручную вместо использования php artisan vendor:publish
. Вы можете сделать это с помощью этой команды:
cp -R vendor/shipping-docker/vessel/docker-files/{vessel,docker-compose.yml,docker} .
и тогда вы сможете установить и продолжить работу в обычном режиме.
Vessel пытается подключиться к портам 80 и 3306 на вашем компьютере, поэтому вы можете просто перейти по http://localhost
в своем браузере.
Однако если вы запустите более одного экземпляра Vessel, при его запуске вы получите сообщение об ошибке; Каждый порт можно использовать только один раз. Чтобы обойти эту проблему, используйте разные порты для каждого проекта, установив переменные среды APP_PORT
и MYSQL_PORT
одним из двух способов:
В файле .env
:
APP_PORT=8080 MYSQL_PORT=33060
Или при запуске Vessel:
APP_PORT=8080 MYSQL_PORT=33060 ./старт судна
Затем вы можете просмотреть свой проект по адресу http://localhost:8080
и получить локальный доступ к базе данных через порт 33060
;
Поскольку мы привязываем MySQL к порту 3306
, SequelPro может напрямую обращаться к базе данных.
Пароль для пользователя root
задается переменной среды DB_PASSWORD
из файла .env
.
Параметр порта должен соответствовать переменной среды
MYSQL_PORT
, которая по умолчанию равна3306
.
Вот список встроенных помощников, которые вы можете использовать. Любая команда, не определенная в сценарии vessel
, по умолчанию будет передана команде docker-compose
. Если используется команда not, она запустит docker-compose ps
, чтобы получить список запущенных контейнеров для этой среды.
# показывает текущую версию судна$ судна --version # или [ -v | версия ]# показывает справку по судну$ судна --help # или [ -H | помощь ]
# Запускаем среду./vessel start## Это эквивалентно./vessel up -d# Остановить среду./vessel stop## Это эквивалентно./vessel down
# Используйте композитор./vessel композитор <cmd>./vessel comp <cmd> # «comp» — это ярлык для «composer» # Используйте artisan./vessel artisan <cmd>./vessel art <cmd> # «art» — это ярлык для "artisan"# Запуск Tinker REPL./vessel Tinker # "tinker" — это ярлык для "artisan Tinker"# Запуск тестов phpunit./vessel test## Пример: Вы вы также можете передать в phpunit все, что захотите./vessel test --filter=some.phpunit.filter ./vessel testtests/Unit/SpecificTest.php# Запустите npm./vessel npm <cmd>## Пример: install deps./vessel npm install# Запустите Yarn./vessel Yarn <cmd>## Пример: install deps./ сосуд пряжи install# Запустите gulp./vessel gulp <cmd>
Как уже упоминалось, все, что не распознано как встроенная команда, будет использоваться в качестве аргумента для команды docker-compose
. Вот несколько полезных трюков:
# Оба будут отображать список запущенных в данный момент контейнеров и их статус./vessel ./vessel ps# Проверить вывод журнала контейнерной службы./vessel logs # все журналы контейнеров./vessel logs app # nginx | php logs./vessel logs mysql # mysql logs./vessel logs redis # redis logs## Храните журналы, чтобы видеть выходные данные по мере их создания./vessel logs -f # all logs./vessel logs -f app # nginx | php logs## Tail Laravel Logs./vessel exec app Tail -f /var/www/html/storage/logs/laravel.log# Запустить оболочку bash внутри контейнера# Это похоже на SSH-подключение к серверу# Обратите внимание, что изменения в контейнере, сделанные таким образом, **НЕ**# сохранятся после остановки и запуска среды судна# Чтобы установить программное обеспечение или изменить конфигурацию сервера, вам необходимо# отредактировать файл Dockerfile и запустить: ./vessel build./vessel exec app bash# Пример: база данных mysqldump "homestead" в локальную файловую систему# Мы должны добавить пароль в командную строку таким образом# Это создает файлы "homestead.sql" в вашей локальной файловой системе, а не # внутри нее контейнер# @link https://serversforhackers.com/c/mysql-in-dev-docker./vessel exec mysql mysqldump -u root -psecret homestead > homestead.sql
Цель этого проекта — простота. Он включает в себя:
PHP 7.4
MySQL 5.7
Редис (последний)
NodeJS (последняя версия) с Yarn и Gulp
Если вы не знакомы с Docker, попробуйте этот курс «Docker в разработке», в котором объясняются важные темы того, как все это устроено.
Если вы хотите увидеть, как был разработан этот рабочий процесс, ознакомьтесь с Shipping Docker и зарегистрируйтесь на бесплатный модуль курса, в котором объясняется построение этого рабочего процесса Docker.
Vessel требует Docker и в настоящее время работает только на Windows, Mac и Linux.
Windows требует запуска Hyper-V. Поддерживается использование Git Bash (MINGW64) и WSL. Родная версия Windows все еще находится в стадии разработки.
Мак | Линукс | Окна |
---|---|---|
Установите Docker на Mac | Установите Docker на Debian | Установите Докер в Windows |
Установите Docker в Ubuntu | ||
Установите Docker на CentOS |