【问题标题】:Svelte Docker Environment VariablesSvelte Docker 环境变量
【发布时间】:2021-06-24 12:20:54
【问题描述】:

我正在尝试在我的 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>

【问题讨论】:

    标签: docker docker-compose svelte


    【解决方案1】:

    问题是环境变量是在你的镜像/你的应用程序(API_URL: process.env.API_URL)的构建过程中评估和设置的,所以通过 docker compose 传递环境变量将没有效果。

    作为一种解决方法,我使用了this,它允许您在构建期间设置环境变量。

    【讨论】:

      猜你喜欢
      • 2020-10-20
      • 2020-12-07
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 2021-12-14
      • 2021-09-29
      • 2016-02-08
      相关资源
      最近更新 更多