Rumah > Soal Jawab > teks badan
Saya sedang membangunkan aplikasi vue. Saya menetapkan pembolehubah persekitaran dalam fail yang dipanggil "config.ts"
yang mengandungi kod yang serupa dengan:
export const configs = { baseURL: process.env.VUE_APP_API_BASEURL || 'http://test.api.co/', }
Saya menguji pembolehubah persekitaran secara setempat menggunakan .env seperti yang ditunjukkan di bawah
VUE_APP_API_BASEURL=https://test2.api.com
Dan ia berfungsi dengan baik.
Saya kemudian melabuhkan aplikasi menggunakan fail Docker seperti ini:
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;"]
Apabila menggunakan aplikasi, pembolehubah tidak kelihatan walaupun ia ditakrifkan dalam definisi tugas.
P粉9165538952024-03-29 17:15:12
Jadi saya menghadapi masalah ini kerana orang DevOp kami menegaskan bahawa kami mempunyai pembolehubah persekitaran masa jalan.
Penyelesaian yang saya bangunkan ialah menulis skrip bash yang menyuntik skrip untuk melampirkan konfigurasi pada objek tetingkap, menjadikannya boleh diakses sebagai masa jalan.