由于未知原因,无法让Nginx在Windows上的Docker环境下运行



所以,在过去的一周左右,我一直在努力让我的nginx服务器运行Docker/Laradock。奇怪的是,当我用C:/运行它时,它是有效的,但在工作人员告诉我必须加密我的磁盘后,我下载了VeraCrypt,制作了一个加密驱动器Y:/,并将我的vhosts文件夹复制到那里。

在尝试连接laradock_nginx_1时经历了很多困难之后,我遵循了本指南,因为我认为Docker Toolbox可能无法访问Y:/驱动器。这似乎奏效了,但我在尝试启动nginx并运行时仍然遇到了一个奇怪的错误:

Y:vhostslaradock>docker-compose up nginx WARNING: The PHP_FPM_INSTALL_TOKENIZER variable is not set. Defaulting to a blank string. laradock_workspace_1 is up-to-date Starting laradock_docker-in-docker_1 ... done Starting laradock_php-fpm_1 ... done Starting laradock_nginx_1 ... done Attaching to laradock_nginx_1 nginx_1 | /opt/startup.sh: line 2: $'r': command not found nginx_1 | /opt/startup.sh: line 10: syntax error: unexpected end of file laradock_nginx_1 exited with code 2

在其他地方读到r只是Windows的行尾。我试着cd到/opt/startup.sh,但它似乎不存在。我发现laradock/nginx/中还有另一个startup.sh,我进入Docker VM,看到每一行都以^M结束,我怀疑这可能是r。我去掉了这些,但没有什么真正的改变,仍然有同样的问题。

在ssh中,我还使用hexdump startup.sh | grep 0d0a对启动bash文件进行了六进制转储,但没有任何结果。我对解决方案不知所措,也不确定还能做些什么。请注意,Docker for Windows或BitLocker是不可能的,因为我只有Windows 10 Home。

我该怎么补救这个问题?这是已知的问题吗?

您可以尝试将laradocknginxstartup.sh文件的windows样式的行尾转换为linux样式的行头,即使用Notepad++(编辑>EOL转换>Unix(LF((。

然后尝试用重建选项启动nginx容器:

docker-compose up --build nginx

最新更新