所以,上个星期左右,我一直在努力让我的nginx服务器从Docker / Laradock上运行。奇怪的是,当我在C:/上运行它时,它可以正常工作,但是当工作人员告诉我必须对磁盘进行加密后,我下载了VeraCrypt,并制作了一个加密的驱动器Y:/,然后将我的vhosts文件夹复制到了那里。
经过很多努力甚至连上laradock_nginx_1
之后,我都跟随this guide,因为我认为Docker Toolbox可能无法访问Y:/驱动器。这似乎可行,但是在尝试启动并运行Nginx时,我仍然收到一个奇怪的错误:
Y:\vhosts\laradock>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
,但似乎不存在。我发现startup.sh
内还有另一个laradock/nginx/
,我走进Docker VM,发现每一行都以^M
结尾,我怀疑可能是{{1 }}。我删除了这些内容,但没有真正改变,仍然遇到了相同的问题。
在ssh中,我还使用\r
对启动bash文件进行了十六进制转储,但没有任何反应。我对解决方案一无所知,而且不确定是否还能尝试做些什么。请注意,因为我只有Windows 10 Home,所以Windows或BitLocker的Docker不再适用。
我可以尝试解决什么问题?这是一个已知问题吗?
答案 0 :(得分:6)
您可以尝试将laradock\nginx\startup.sh
文件的 windows样式行结尾转换为 linux样式行结尾,即使用记事本++(编辑> EOL转换> Unix(LF ))。
然后尝试使用rebuild选项启动nginx容器:
docker-compose up --build nginx