Docker -компонентные переменные окружения, похоже, не установлены вообще. Я пытался использовать env_file и поля окружения, но при печати process.env в моем приложении vue единственными видимыми переменными являются NODE_ENV и BASE_URL
Вот мой код составления docker:
frontend:
container_name: "Frontend"
build:
context: .
dockerfile: frontend.dockerfile
env_file:
- ./frontend.env
environment:
VUE_APP_BACKEND_URL: "django"
ports:
- 8000:80
command: echo $VUE_APP_BACKEND_URL
Frontend Dockerfile:
# build stage
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY ./front/package*.json ./
RUN npm install
COPY ./front .
RUN npm run build
# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Мой код frontend.env (он был добавлен, когда я пытался отладить проблему):
VUE_APP_BACKEND_URL=django
VUE_APP_BACKEND_PORT=9000
Вот мой js код
export function getEnvironmentVar(key,defaultVal){
window.console.log(process.env)
window.console.log(process.env.VUE_APP_BACKEND_URL)
var result = process.env[`VUE_APP_${key}`];
window.console.log(`Trying to read environment variable: ${key}, got: ${result}`)
if(result!= undefined)
return result
else
return defaultVal
}
Вывод:
{NODE_ENV: "production", BASE_URL: "/"}
NODE_ENV: "production"
BASE_URL: "/"
__proto__: Object
Это вывод с командной строкой в docker -компонент добавлен:
WARNING: The VUE_APP_BACKEND_URL variable is not set. Defaulting to a blank string.
Starting Frontend ... done
Attaching to Frontend
Frontend |
Frontend exited with code 0
Что я делаю неправильно?