0004 — CBotBuilder се покреће на веб домаћину у песничком контејнеру
Контекст
Грађење cBot-а корисника значи покретање неповерљивог MSBuild-а — произвољног кода у време грађења (циљи, генератори извора, скрипте за復査). Мора имати Docker сокет да спини SDK контејнер. Чворови покрећу трговачке контејнере и не би требало да имају привилегије за грађење.
Одлука
CBotBuilder се покреће на веб домаћину (који већ има Docker сокет), унутар прилично SDK
контејнера са:
- монтираним
/workдиректоријумом (само градни улази/излази, не цео хост филесистем); - дељеном
app-nuget-cacheјачином за перформансе復査; - без приступа мрежи домаћина изван оног што復査 треба.
Тако неповерљив MSBuild не може достићи филесистем или мрежу домаћина. Покрени/тестирани контејнери, напротив,
се покрећу на чворовима које бира NodeScheduler.
Последице
- Привилегија грађења (Docker сокет) је ограничена на веб домаћин; чворови само покрећу дозвољене трговачке слике.
- Свака градња је изолована у одбацивом контејнеру — малициозна градња не може да остане или побегне.
- Веб домаћин мора имати доступан Docker сокет; ово је захтев за развој, не опционално.