我正在尝试在我的 Svelte 应用程序中为 API 端点使用 docker compose 环境变量,但它未定义。
这确实适用于这样的 .env answer 但我想通过 docker-compose 环境传递它
Docker 撰写文件
services:
frontend:
build: ./frontend/ # For development
container_name: frontend
restart: always
environment:
- API_URL: https://0.0.0.0/8000
ports:
- "5000:5000"
volumes:
- ~/uploader:/app/static/uploads
depends_on:
- backend
rollup.config
plugins: [
replace({
preventAssignment: true,
__myapp:JSON.stringify({
env: {
isProd: production,
// ...config().parsed
API_URL: process.env.API_URL
}
})
// "API_URL_VAR", JSON.stringify(process.env.API_URL_VAR)
}),
苗条
<script lang="ts">
console.log(__myapp.env.API_URL);
</script>
<h1 class="text-red-800 text-3xl font-bold p-3">Hello World!</h1>
答案 0 :(得分:0)
问题是环境变量是在你的图像/你的应用(API_URL: process.env.API_URL
)的构建过程中被评估和设置的,所以从 docker compose 传递环境变量将没有任何效果。
作为一种解决方法,我使用了 this,它允许您在构建期间设置环境变量。