Apache 和 passenger 在 Docker mac 和 ubuntu 上的表现不同

Apache and passenger behave differently on Docker mac vs ubuntu

当我在 mac 或 linux 上部署容器 运行ning apache2 + passenger phusion + rails 应用时,我遇到了一些问题。 我使用从 docker 集线器和相同的 运行 命令

中提取的相同图像(基于 ubuntu:14.04)
docker run -it -p 80:80 -p 443:443 -e RAILS_ENV=development --link pg my-image-name

在 OSX 10.10.5,运行ning docker 1.9.1 上,构建 a34a1d5 一切正常。 在我的生产服务器 ubuntu 14.04.3 LTS 上,运行 使用相同的 docker 版本,我收到以下错误

AH00035: access to / denied (filesystem path '/home/app/app') because search permissions are missing on a component of the path

使用 chmod 775 -R /home/app 设置权限。 这是 passenger 和 apache 版本 + 配置

Server version: Apache/2.4.7 (Ubuntu)
Server built:   Oct 14 2015 14:20:21
Phusion Passenger 5.0.22
<VirtualHost *:80>
    ServerName www.my-app.com
    DocumentRoot /home/app/app/public
    PassengerRuby /usr/bin/ruby
    RailsEnv development
    ErrorLog "/home/app/app/log/apache_error_log"
    CustomLog "/home/app/app/log/apache_access_log" common
    <Directory /home/app/app/public>
       AllowOverride all
       Options -MultiViews +FollowSymLinks +Indexes
       Require all granted
       Order allow,deny
       allow from all
    </Directory>
</VirtualHost>

知道为什么我在 OS X 和 Ubuntu 运行 同一个容器之间得到两种不同的行为吗?

谢谢

正如 issue 16741 中评论的那样:

I think I've seen a similar issue, which was related to the aufs driver.

Fixed by using "devicemapper" instead of "aufs" thanks to this post:
"Switching Docker from aufs to devicemapper"

changed /etc/default/docker to enable device mapper:
(save the images first)

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--storage-driver=devicemapper"

OP Alberto Sabaini 确认有效:

I thought that Ubuntu LTS would be using device mapper as default, but by typing docker info | grep Storage, I get Storage Driver: aufs in both mac and Ubuntu.
The weird part is that my image spin fine on mac with aufs and on Ubuntu on device mapper.