recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi mes variables d'environnement ne sont-elles pas définies lors du déploiement sur AWS ?

Je développe actuellement une application vue. J'ai défini les variables d'environnement dans un fichier appelé "config.ts" qui contient un code similaire à :

export const configs = {
  baseURL:
    process.env.VUE_APP_API_BASEURL ||
    'http://test.api.co/',
}

J'ai testé les variables d'environnement localement en utilisant .env comme indiqué ci-dessous

VUE_APP_API_BASEURL=https://test2.api.com

Et ça marche très bien.

J'ai ensuite dockerisé l'application à l'aide d'un Dockerfile comme ceci :

FROM private_image_container/node:v16 as build-stage

# declare args
ARG VUE_APP_API_BASEURL

# set env variables
ENV VUE_APP_API_BASEURL=$VUE_APP_API_BASEURL
RUN echo "VUE_APP_API_BASEURL=$VUE_APP_API_BASEURL" > .env
WORKDIR /app
COPY package.json ./
COPY yarn.lock ./
RUN yarn
COPY . .
RUN yarn build

# production stage
FROM private_image_container/nginx:latest as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Lors du déploiement de l'application, les variables ne sont pas visibles même si elles sont définies dans la définition de la tâche.

P粉008829791P粉008829791240 Il y a quelques jours405

répondre à tous(1)je répondrai

  • P粉916553895

    P粉9165538952024-03-29 17:15:12

    J'ai donc rencontré ce problème parce que nos équipes DevOp ont insisté sur le fait que nous avions des variables d'environnement d'exécution.

    La solution que j'ai développée était d'écrire un script bash qui injecte un script pour attacher la configuration à l'objet window, le rendant accessible en tant que runtime.

    répondre
    0
  • Annulerrépondre