Developing Discourse using a Dev Container

Для тех, кто не привязан к VSCode, вот процесс работы с devcontainers с помощью только CLI devcontainers.
Предполагается, что devcontainers уже установлен:

Сборка контейнера

git clone https://github.com/discourse/discourse && cd discourse
devcontainer build
devcontainer up --workspace-folder .
devcontainer exec bash

После входа в контейнер необходимо установить зависимости:

pnpm install
bundle install
SKIP_MULTISITE=1 SKIP_TEST_DATABASE=1 bin/rake db:create db:migrate
DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE=1 bin/ember-cli -u > /dev/null 2>&1 &
  • Замените /dev/null на другой файл, если хотите сохранять логи.
  • Если нужно оставить процесс запущенным после отключения от оболочки, выполните команду disown.

Доступ к Discourse

docker inspect <name> | jq '.[0].NetworkSettings.Networks.bridge.IPAddress'

Это покажет IP-адрес, назначенный контейнеру.
Откройте в браузере http://<ipaddress>:4200.

Очистка

Чтобы удалить ваш devcontainer (опции down/delete ещё не реализованы):
Получите имя контейнера:
docker ps
Остановите и удалите контейнер:
docker stop <name> && docker rm <name>
Удалите тома:
docker volume rm discourse-node_modules discourse-pg discourse-redis

2 лайка