nginx - Docker 和 Bower 链接

标签 nginx docker bower

我正在使用 docker 运行一个简单的静态 web 项目,使用 nginx 官方图像。作为一个 bower 依赖,我有一个属于我的 ui 库,并在我的两个项目之间共享。为了方便开发过程,我在本地机器上创建了一个卷,以通过 nginx 容器内的/html 文件夹提供本地文件。这种方式工作得很好。

但是,如果我尝试使用 bower 链接在我的 ui lib 的本地副本和 bower 依赖项之间创建链接,则 nginx Web 服务器无法找到该文件夹​​,因为该链接指向我的本地计算机。

我在 Mac 上运行 docker vm。

是否有人经历过类似的事情并知道如何解决它?

谢谢,

最佳答案

我刚刚遇到了这个问题,并找到了一种很好地解决它的方法。

问题是,当您将整个/html 文件夹作为卷挂载时,bower 链接创建的符号链接(symbolic link)会被复制到您的容器中,而不是它们指向的实际文件夹中。 当 nginx 尝试提供文件时,它遵循符号链接(symbolic link),但现在位于容器内部,其中路由无效。

要解决此问题,请创建另一个直接映射符号链接(symbolic link)的卷。 这样,docker-compose 将在安装到容器之前遵循符号链接(symbolic link),因此复制实际文件夹内容 .这样做的好处是,在您的本地文件系统中,您仍然可以使用文件夹和符号链接(symbolic link),因此您可以像往常一样工作:)

实际例子:
我的文件夹结构

/app
|--/bower_components
   |--/packageA
   |--/packageB -> symlink to /foo/bar/packageB

我的撰写文件:
version: '2'
services:
  nginx:
   volumes:
     - .:/foo
     - ./bower_components/packageB:/foo/bower_components/packageB
 ...

让我知道它是否有效,干杯!

关于nginx - Docker 和 Bower 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37569402/

相关文章:

elasticsearch - 在Nginx代理后面进行Elasticsearch跨集群搜索

docker - 让 docker 上的项目保持最新的更好方法

docker - docker ps -a不显示我的容器

node.js - 解析主要的 bower 文件(js、css、scss、图像)以通过 Gulp 分发

node.js - 在 Vagrant 中安装 Node、NPM(然后全局安装 Grunt 和 Bower)

javascript - Bower 版本问题 : SockJS

linux - 在 nginx 中处理默认服务器和 ip 转发的最佳实践

python - 如何在 uWSGI 中正确加载 Flask 应用程序模块?

php - nginx - 您要找的页面暂时不可用

nginx - docker swarm 模式(docker 1.13 和 compose v3)真的提供零停机滚动更新或部署吗?