我正在尝试在我的Svelte应用程序中为API端点使用docker composite环境变量,但它是未定义的。
这确实适用于.env,就像这个答案一样,但我想把它传递给一个docker编写环境
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)
}),
Svelte
<script lang="ts">
console.log(__myapp.env.API_URL);
</script>
<h1 class="text-red-800 text-3xl font-bold p-3">Hello World!</h1>
问题是,环境变量是在映像/应用程序(API_URL: process.env.API_URL
(的构建过程中评估和设置的,因此从docker-compose传递环境变量不会有任何效果。
作为一种变通方法,我使用了它,它将允许您在构建过程中设置环境变量。