Svelte Docker环境变量



我正在尝试在我的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传递环境变量不会有任何效果。

作为一种变通方法,我使用了它,它将允许您在构建过程中设置环境变量。

最新更新