Можете ли вы использовать переменную среды внутри контейнера Docker с помощью угловой универсальной SSR?

#node.js #angular #docker #angular-universal

Вопрос:

Я пытаюсь захватить переменную среды из контейнера Docker, используя Angular Universal. Мне нужно, чтобы я мог передать это в свой браузер для использования компонентом app.во время выполнения.

ENV задается моим файлом Docker и присутствует внутри контейнера при его запуске

 VARS_TEST_TOKEN='HELLO_WORLD'
 

На стороне сервера я вытаскивал модуль процесса из Node.js и захват переменной внутри сервера для использования в качестве токена ввода. Когда я запускаю это, я вижу переменную, отображаемую на стороне сервера.

 export const VARS_TEST_TOKEN = new InjectionToken<string>('');
export const varsTestFactory = process.env['VARS_TEST_TOKEN']
 

Внутри моего модуля я настроил его как поставщика, который будет внедрен в мой компонент

 @NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserTransferStateModule
  ],
  providers: [{
      provide: VARS_TEST_TOKEN,
      useValue: varsTestFactory,
    },]
 

Наконец, мой компонент app.component выглядит так

 constructor(
    @Inject(DD_VARS_TEST_TOKEN)  private _token: string,
){
    console.log("IS THIS THING ON ", _token);
}
 

В основном в браузере появляется следующее.

 IS THIS THING ON: undefined
 

Нужно ли мне делать это с помощью модуля BrowserTransferStateModule? Я не был уверен, как это работает.