Cześć, jeżeli macie aplikację w React/Express która jest postawiona przy użyciu Dockera to jak wygląda przekazywanie zmiennych środowiskowych? W .env lub .env.local? Jeżeli w docker-compose.yaml zdefiniuję jakieś zmienne:
version: "3.7"
services:
my-app:
image: image/my-app
container_name: my-app-app
build:
context: ./
dockerfile: Dockerfile
ports:
- "8008:80"
environment:
REACT_APP_API_URL: http//localhost:8001
To nie są one używane przez aplikację napisaną w React. Nawet jeżeli w Dockerfle umieszczę RUN echo $REACT_APP_API_URL lub RUN echo $process.env.REACT_APP_API_URL to nie dostaję zmiennej.
FROM node:10 as node-builder
WORKDIR /usr/src/app
COPY . .
RUN printenv
RUN echo $REACT_APP_API_URL
RUN echo $process.env.REACT_APP_API_URL
RUN npm install --silent
RUN npm run build
FROM nginx:1.17-alpine
WORKDIR /var/www
COPY --from=node-builder /usr/src/app/build /usr/share/nginx/html
EXPOSE 80
Czy muszę zawsze używać pliku .env? Jak przy budowaniu obrazu wyświetlić zmienne z environment z pliku docker-compose?