我正在Windows的Docker上运行客户端Symfony3应用程序。我的docker-compose非常简单:PHP7.1,Nginx,MySQL和phpMyAdmin。
一切正常,但是当PHP尝试访问包含正斜杠和反斜杠的文件路径时,出现了多个错误。
例如,我遇到的第一个错误是:"Session Storage was not able to create directory "/var/www/symfony\app/../var/sessions/prod""
这不是权限问题,因为当我找到调用此文件的代码的PHP部分,并将\app
替换为/app
时,一切正常,应用程序将运行至下一个路径。
我绝对不能替换代码中的所有反斜杠,因为其他开发人员可能会在Windows上工作并将这些反斜杠放在一个原因。但是,我很确定我已经使用这种路径之王运行了应用程序,没有任何问题。
关于它可能来自哪里的任何想法? PHP配置? Nginx config吗?
谢谢!
答案 0 :(得分:0)
因此,如果您想使Dockerfile看起来像Windows-y,请使用反引号进行转义,注意不适用于它的指令,并坚持使用shell形式运行命令:
# escape=`
FROM microsoft/nanoserver
COPY template.html c:\template.html
RUN mkdir c:\inetpub\wwwroot
RUN powershell `
cat c:\template.html `
> c:\inetpub\wwwroot\index.html
@ref:https://blog.sixeyed.com/windows-dockerfiles-and-the-backtick-backslash-backlash/