Я запускаю приложение 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
, что может привести к ошибкам.