我遇到运行apache2 + passenger phusion + rails app的容器的一些问题,当我在mac或linux上部署它们时。 我使用从docker hub拉出的相同图像(基于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上运行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设置权限。 这是乘客和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之间有两种不同的行为?
由于
答案 0 :(得分:0)
如issue 16741中所述:
我想我见过类似的问题,这与aufs驱动程序有关。
通过使用“devicemapper”而不是“aufs”来修复,感谢这篇文章:
“Switching Docker from aufs to devicemapper”更改
/etc/default/docker
以启用设备映射器:
(先保存图像)
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--storage-driver=devicemapper"
OP Alberto Sabaini确认它有效:
我认为Ubuntu LTS默认使用设备映射器,但是输入
docker info | grep Storage
,我在mac和Ubuntu中都得到Storage Driver: aufs
。
奇怪的是,我的图像在mac上使用aufs和在设备映射器上的Ubuntu上旋转很好。