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.
当我在 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 getStorage 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.