Windows容器卷文件权限问题

时间:2018-03-15 22:55:43

标签: apache docker containers docker-windows windows-container

我正在尝试在Windows 10上使用Docker容器建立PHP + Apache开发环境。

PS H:\> docker version
Client:
 Version:       17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:05:22 2017
 OS/Arch:       windows/amd64

Server:
 Engine:
  Version:      17.12.0-ce
  API version:  1.35 (minimum version 1.24)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:        Wed Dec 27 20:15:52 2017
  OS/Arch:      windows/amd64
  Experimental: true

我的容器是一个窗口的容器,其中microsoft/windowsservercore为基本图像。

我面临的一个问题是当源代码通过卷挂载时,apache不喜欢文件权限。 No input file specified.是显示的错误。 access.log提供"GET /info.php HTTP/1.1" 404 25

这是具有已安装卷的容器内的文件权限。

PS C:\www> get-acl .\info.php | format-list
Path   : Microsoft.PowerShell.Core\FileSystem::C:\www\info.php
Owner  : O:S-1-5-21-1258723895-351397710-2907126007-1740
Group  : G:S-1-5-21-1258723895-351397710-2907126007-513
Access : BUILTIN\Administrators Allow  FullControl
     NT AUTHORITY\SYSTEM Allow  FullControl
     BUILTIN\Users Allow  ReadAndExecute, Synchronize
     NT AUTHORITY\Authenticated Users Allow  Modify, Synchronize
Audit  :
Sddl   : O:S-1-5-21-1258723895-351397710-2907126007-1740G:S-1-5-21 . 
  -1258723895-351397710-2907126007-513D:AI(A;ID;FA;;;BA
     )(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)

当我将info.php复制到容器中时,apache正常工作。

PS C:\www>
Path   : Microsoft.PowerShell.Core\FileSystem::C:\www\info.php
Owner  : User Manager\ContainerAdministrator
Group  : User Manager\ContainerAdministrator
Access : BUILTIN\Administrators Allow  FullControl
     NT AUTHORITY\SYSTEM Allow  FullControl
     User Manager\ContainerAdministrator Allow  FullControl
     BUILTIN\Users Allow  ReadAndExecute, Synchronize
Audit  :
Sddl   : O:S-1-5-93-2-1G:S-1-5-93-2-1D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)
  (A;ID;FA;;;S
     -1-5-93-2-1)(A;ID;0x1200a9;;;BU)

我的解决方法是使用Robocopy从已装入的卷文件夹复制到DocumentRoot。问题是我必须等待几秒钟才能将源代码更改反映在容器中。

有更好的解决方案吗?

0 个答案:

没有答案