Передача переменных среды из Docker Compose в VueJS контейнер с nginx - PullRequest
0 голосов
/ 08 мая 2020

Я запускаю приложение VueJS в контейнере Docker, где приложение обслуживается nginx.

docker -compose.yml

services:
  my-frontend-service:
    image: my-frontend-image:1.0.0
    environment:
      VUE_APP_USE_FEATURE: 1

Проблема в том, что я не могу использовать переменные среды из Docker compose, поскольку process.env.VUE_APP_USE_FEATURE недоступен в этом контексте. В качестве обходного пути я получил следующее.

точка входа. sh

#!/bin/sh

cat <<EOF > /app/env.js
window.myEnv = {
  useFeature: "${VUE_APP_USE_FEATURE}"
}
EOF

rm -f /app/env.js.gz
gzip < /app/env.js > /app/env.js.gz

exec nginx -g 'daemon off;'

Таким образом, я могу использовать переменные среды с window.myEnv.useFeature. Однако мне интересно, может ли быть более «элегантное» решение? При введении новой переменной окружения всегда нужно помнить о добавлении ее в entrypoint.sh, что может привести к ошибкам.

...