Vue.js在Docker容器中使用环境变量

时间:2020-11-03 19:09:42

标签: docker vue.js docker-compose

我有一个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中使用该应用的任何建议? 预先感谢

0 个答案:

没有答案