无论如何,要在运行Docker映像时配置服务器URL?(而不是应用程序中的硬编码)



我有一个使用Angular 7构建的Web应用程序,我需要进行API调用以获取我在应用程序中显示的一些数据。

API终点是Node.js中的Express Server,它具有一些配置,可以从Web应用程序的URL

中启用CORS

我已经为Web应用程序和中间件服务创建了单独的Docker映像,我计划将它们部署在同一服务器中(Linux Machine在云VM上使用IP -A.B.C.D(

由于我知道此VM的IP,因此我可以将API URL用作Web App(Angular Service(中的A.B.C.D/API/FOO(Angular Service(,并且White列出了Web应用程序中间件中的URL为A.B.C.D:3000

但是在某些情况下,VM的IP地址将来可能会发生变化,我们还将使用Ansible脚本在云中自动化VM创建。在这种情况下,我有什么办法在Web应用程序和中间件中拥有某种占位符,并在服务器上运行Docker映像时配置URL?或事实上,我可能会在应用程序中使用的任何URL(例如-DB URL等(

我们已经使用了此方法,因此它肯定会起作用。您可以将URL保存在environment.ts中,并在"必需"页面上调用

export const environment = {
  production: false,
  apiUrl : 'http://a.b.c.d:3000'
};

服务页面以包含url到服务

  export class CServices {
      private url = environment.apiUrl;
constructor(){}
  checkfunction() {
    return this.http.post(this.url + '/api/', JSON.stringify(payload));
  }
    }