Билд контейнера:
docker-compose build
Создание базы:
docker-compose docker-compose run db:create db:migrate db:seed
Запустить сервер:
docker-compose docker-compose run --rm --service-ports web
Команда выше стартует рельсы на http://localhost:3000/ и вебпак дев сервер на http://localhost:3001/
Рестарт вебпака:
docker-compose restart webpack
Логи вебпака:
docker-compose logs webpack
Запустить коносоль:
docker-compose run web /bin/bash
Любая другая команда, которую нужно запустить в контексте контейнера:
docker-compose run web МОЯ_КОМАНДА
В любой непонятной ситуации можно все перзапустить:
docker-compose restart
Если не перезапускается через compose, выводим список процессов docker ps
, берем нужный CONTAINER ID запущенного контейнера и делаем docker kill CONTAI NER ID
Если видим ошибку Bind for 0.0.0.0:3000 failed: port is already allocated
это означает что уже где-то запущен сервис который использует 3000 или 3001 порт. Через docker ps
можно посмотреть что и где запущено и убить как в инструкии выше.
Можно настроить алиасы. Для zsh в ваш ~/.zshrc
нужно добваить:
alias d="docker"
alias dc="docker-compose"
alias dw="docker-compose run web"
alias db="docker-compose build"
dcr() {
docker-compose run --rm --service-ports $1 $2
}
Тогда команды будут такие.
Запуск сервера:
ds
Запуск тестов:
dw rails test
Запуск интерактивной сессии:
dw /bin/bash
Рестарт вебпака:
dc restart webpack
Ну и далее по аналогии.