我有一个vue.js应用,正在使用.env配置环境变量。
VUE_APP_API_LOCATION=http://localhost:8091
我还使用Docker为应用程序构建了一个映像:(摘自vuejs文档)
# build stage
FROM node:lts-alpine as build-stage
WORKDIR /my-app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /my-app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
最后,我的目标是分发此应用程序,并能够使用docker-compose(这是我的atm)配置这些属性:
version: '3.2'
services:
portal:
restart: always
build:
# I use a dockerfile to specify the image
context: my-app/
args:
FRONTEND_VERSION: $FRONTEND_VERSION
ports:
- "80:80"
environment:
VUE_APP_API_LOCATION: my-remote-host:8091
所以我的问题是当我使用docker-compose vue时仍在使用.env属性,并指向localhost:8091而不是环境中指定的那个。 我试图在容器内部打印变量,它是在docker-compose(my-remote-host:8091)中指定的变量。
这就是我在main.js中使用变量的方式:
Vue.prototype.$API_LOCATION = process.env.VUE_APP_API_LOCATION;
关于该应用为何未在docker-compose中使用该应用的任何建议? 预先感谢