Как Angular 8 может получить доступ к переменным окружения? - PullRequest
0 голосов
/ 08 октября 2019

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

Использование @ angular-builders / custom-webpack и @ angular-builders / dev-server непомочь вообще.

dotenv явно не работает с Angular (только с приложениями Node).

==============================

Вот мой Dockerfile:


FROM node:12.10.0

ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -

RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

RUN apt-get update && apt-get install -yq google-chrome-stable

WORKDIR /app

ENV PATH /app/node_modules/.bin:$PATH
ENV API_BASE=${API_BASE}

COPY package.json /app/package.json

RUN npm install

RUN npm install -g @angular/cli@8.0.2

COPY . /app

EXPOSE 4200 49153

CMD ng serve --host 0.0.0.0

Вот мой файл docker-compose.yml:


version: '3.7'

services:
  web:
    container_name: myapp-fe-container
    build:
      context: .
      dockerfile: Dockerfile
    image: myapp-fe-image
    volumes:
      - '.:/app'
      - '/app/node_modules'
    ports:
      - '4200:4200'
      - '49153:49153'
    environment:
      - CHOKIDAR_USEPOLLING=true

Мне нужно передать конечные точки api в docker-compose.yml в зависимости от среды, в которой он работает. Есть предложения?

...