Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 在构建Ember应用程序后管理配置_Ember.js - Fatal编程技术网

Ember.js 在构建Ember应用程序后管理配置

Ember.js 在构建Ember应用程序后管理配置,ember.js,Ember.js,如果可能的话,在ember构建之后寻找管理配置的最佳实践。虽然这不一定是特定于Docker的,但以下内容必须让您对需求有一个很好的了解,即使您不是Docker的老手 动机:我们使用+Docker Hub(自动)分别构建和部署后端和前端应用程序。有多个部署。前端应用程序基于(使用ember cli)。与其在单独的Dockerfile中运行ember build--environment deployment-{1..N},并最终拥有多个Docker映像,我更希望拥有一个Docker映像,并运行Do

如果可能的话,在
ember构建之后寻找管理配置的最佳实践。虽然这不一定是特定于Docker的,但以下内容必须让您对需求有一个很好的了解,即使您不是Docker的老手

动机:我们使用+Docker Hub(自动)分别构建和部署后端和前端应用程序。有多个部署。前端应用程序基于(使用ember cli)。与其在单独的Dockerfile中运行
ember build--environment deployment-{1..N}
,并最终拥有多个Docker映像,我更希望拥有一个Docker映像,并运行Docker容器,将所需设置作为环境变量传递,以便稍后将其注入ember配置,例如:

docker run -e ENV_APP_APIURL=deployment1.example.com ... --name deployment1 dockerimage
然后,我将在Dockerfile中运行一个小脚本作为
ENTRYPOINT
,它使用这些环境变量并将它们注入到构建的Ember应用程序中,以便web服务器可以为重新配置的应用程序提供服务。简言之:

[ember app] >> build >> [compiled generic web app] >> reconfigure(?) >> [final web app]

这是ember的工作方式还是我应该去喝杯咖啡?

如何将元标记从entrypoint脚本中注入到index.html和环境变量中?那么Ember应用程序可以在运行时拾取这些元标记吗

ENTRYPOINT/start.sh

我的启动脚本执行以下操作:

#!/bin/bash
set -e

if [ -n $API_BASE_URI ]
then
   sed -i "/API_BASE_URI/c <meta name='API_BASE_URI' content='$API_BASE_URI'>" /app/dist/index.html; > /dev/null
 fi ]

exec "$@"
#/bin/bash
set-e
如果[-n$API\u BASE\u URI]
然后
sed-i“/API\u BASE\u URI/c”/app/dist/index.html;>/dev/null
fi]
执行官“$@”
index.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>APP NAME</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="API_BASE_URI" content="/api">
...

应用程序名称
...

似乎有一种方法可以将Docker环境变量注入到构建过程中。这不是我想要的。然而,相当可观:看起来是迄今为止最好、最通用的选择。谢谢