Skip to content

Instantly share code, notes, and snippets.

@Andrew8xx8
Last active October 11, 2017 10:12
Show Gist options
  • Save Andrew8xx8/fb0b2b072f33ad24a2a8bf09e84bea8a to your computer and use it in GitHub Desktop.
Save Andrew8xx8/fb0b2b072f33ad24a2a8bf09e84bea8a to your computer and use it in GitHub Desktop.
Разработка рельсового проета в докере

ПОДГОТОВКА

Билд контейнера:

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

Ну и далее по аналогии.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment