所以,在过去的一周左右,我一直在努力让我的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