Docker 使用Nginx的反向代理仪表板应用程序 目标
我正在尝试为R/Python Dash仪表板应用程序构建一个连续的部署管道。GitLab允许您拥有这个整洁的功能,您可以为分支/合并请求部署审查应用程序,并在合并请求概述中的管道状态下显示指向该应用程序的链接 现在CI脚本实际上需要部署这些应用程序。因此,我们需要做的第一件事是。我找到的解决方案每次部署都会产生一个随机端口,每次都会更改review应用程序的url。这似乎与GitLab有点冲突,因为它假设每个“(动态)环境”有一个链接,即一个分支/审阅应用程序的部署被分组到一个环境中 问题 因此,出于这个原因,我尝试在应用程序前面安装一个nginx服务器。因此,最自然的做事方式似乎是Docker 使用Nginx的反向代理仪表板应用程序 目标,docker,nginx,continuous-integration,dashboard,continuous-deployment,Docker,Nginx,Continuous Integration,Dashboard,Continuous Deployment,我正在尝试为R/Python Dash仪表板应用程序构建一个连续的部署管道。GitLab允许您拥有这个整洁的功能,您可以为分支/合并请求部署审查应用程序,并在合并请求概述中的管道状态下显示指向该应用程序的链接 现在CI脚本实际上需要部署这些应用程序。因此,我们需要做的第一件事是。我找到的解决方案每次部署都会产生一个随机端口,每次都会更改review应用程序的url。这似乎与GitLab有点冲突,因为它假设每个“(动态)环境”有一个链接,即一个分支/审阅应用程序的部署被分组到一个环境中 问题 因此
$port
$server\u name:$port
时那样)。但由于不是这样,这些请求被传递到原始nginx服务器并导致404。这个问题有很多问题,例如
现在,第一个问题的答案似乎列出了我的选择。我两个都不喜欢。第一个需要ngx_http_sub_模块,这显然不是默认安装的一部分(这意味着我可能无法使用现有的nginx docker映像之一)
第二种可能适用于Dash
应用程序,您可以对其进行修改
app=dash.dash(
__name\uuuuu,url\u base\u pathname=os.environ[“base\u PATH”]
)
但是在那里
我不太明白第三种方法。我想它会检查谁是资产请求的推荐人,以便将my_app/review/branch_name
预先发送到来自那里的资产请求。但是,我不明白为什么这只适用于css/js,以及为什么回答说他们不会在生产中使用它,我觉得我不明白这是如何工作的,以至于无法使用它
那么为什么要问这个问题呢?
我认为将其他服务器置于代理之后是proxy\u pass
的全部要点,所以我有点困惑为什么这会如此复杂。我假设对于这样一个标准用例,应该有一个更简单的解决方案
目前,我能想到的最简单的办法是不要使用proxy\u pass
,而是执行302(Found)
重定向。链接会有点难看,但它大大降低了复杂性
我觉得保持CI部署的低复杂性非常重要。首先,它们有点难以调试,其次,我的团队主要由数据科学家组成,他们不想也不应该关注这些细节
所以我不知道谷歌的目的是什么,但我觉得应该有一个不同的方法来解决这个问题,这就是为什么我要发布这个问题