Pourquoi mes variables d'environnement ne sont-elles pas définies lors du déploiement sur AWS ?
P粉008829791
P粉008829791 2024-03-28 19:58:03
0
1
429

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粉008829791
P粉008829791

répondre à tous(1)
P粉916553895

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal