대시보드를 개발할 때는 pfaffmanager-discourse 스크립트를 통해 명령줄로 여러 설정을 전달하고, 이 스크립트가 최신 discourse를 가져오고 데이터베이스를 마이그레이션하도록 하고 있습니다. Docker 버전에서도 이를 어떻게든 구현할 수 있을 것 같습니다.
Docker 대신 네이티브 개발 인스턴스를 가져야 한다는 것이 구식적인 생각인가요?
저는 항상 Ansible을 사용하여 새 머신을 설정합니다. 현재 설정에서 빠져 있는 것은 discourse 개발 스크립트뿐입니다. 다른 분들도 이런 기능이 필요할까요? 이를 코어에 포함시켜서 discourse를 클론한 후 플레이북을 실행하기만 하면 Ruby, ImageMagick 및 기타 필요한 도구들을 적절한 버전으로 설치할 수 있게 할 수 있을까요?
이 중 일부는 Discourse 외의 다른 이유로 제가 추가했을 수도 있지만, 정확히 기억은 나지 않습니다.
그리고
apt-get install -y git build-essential libxslt1-dev libcurl4-openssl-dev libksba8
libksba-dev libreadline-dev libssl-dev zlib1g-dev libsnappy-dev
sqlite3 libsqlite3-dev postgresql postgresql-server-dev-all
postgresql-contrib libpq-dev redis-server golang-go
go get GitHub - mailhog/MailHog: Web and API based SMTP testing · GitHub
(순서가 정확히 이 순서일 필요는 없습니다) 거의 근접합니다. 현재 ubuntu에 포함된 redis는 개발자의 99%에게는 충분합니다 ~~(6.x가 아닌 7.0.7입니다)~~ 아! 이제 7.0.7이 포함된 것이네요. 하지만 redis용 `asdf` 플러그인도 있습니다.
이러한 스크립트가 있다면 node, imagemagick 또는 Ruby의 버전이 업데이트될 때 코어에서 유지보수하기가 훨씬 쉬워질 것입니다. 그러면 게으른 개발자가 일주일에 한 번씩, 또는 새로운 pull 요청이 있을 때마다 이 스크립트를 실행하여 최신 개발 환경을 가질 수 있습니다. 몇 시간만 투자하면 Linux, Mac/homebrew, Windows/WSL에서 사용할 수 있도록 크로스 플랫폼으로 만들 수 있을 것입니다. 다행히 요즘 저는 Windows에 쉽게 접근할 수 없어서 자원봉사는 하지 않겠습니다.
하지만 `discourse_docker`의 변경 사항을 지켜본다면, 그 업데이트 시점을 알게 될 것이고, 제 `newmachine` ansible 플레이북에 해킹으로 추가한 부분들이 이제 일을 해줄 수 있을 것 같습니다.
팁을 알려주셔서 감사합니다! 이제 단일 명령으로 어떤 기기에서도 개발 설정을 갖출 수 있을 것 같습니다.
자동으로 처리되는 것이 얼마나 멋진지 이해할 수 있지만, 저에게는 개발 환경, 업데이트 등을 직접 관리하는 것이 업무의 필수적인 부분입니다.
초보자에게는 힘든 일이지만, 바로 이런 상황에서 GitHub Codespaces 같은 도구가 빛을 발합니다. 하지만 Discourse 개발에 매일 매진하는 사람들에게는 개발 환경을 이해하고 조작할 수 있는 능력이 전체 부품이 어떻게 맞물려 작동하는지 이해하는 데 도움이 됩니다.