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

时间:2018-11-17 23:05:50

标签: windows docker nginx laradock

所以,上个星期左右,我一直在努力让我的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不再适用。

我可以尝试解决什么问题?这是一个已知问题吗?

1 个答案:

答案 0 :(得分:6)

您可以尝试将laradock\nginx\startup.sh文件的 windows样式行结尾转换为 linux样式行结尾,即使用记事本++(编辑> EOL转换> Unix(LF ))。

然后尝试使用rebuild选项启动nginx容器:

docker-compose up --build nginx