2

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

经过很多努力甚至试图laradock_nginx_1附加,我遵循了这个指南,因为我认为 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 into /opt/startup.sh,但它似乎不存在。我发现startup.sh里面还有另一个laradock/nginx/,我 ssh 进入 Docker 虚拟机并看到每一行都以 结尾^M,我怀疑这可能是\r。我删除了那些,但没有真正改变,仍然遇到同样的问题。

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

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

4

1 回答 1

6

You can try to convert laradock\nginx\startup.sh file's windows style line endings to linux style line endings, i.e. with Notepad++ ( Edit > EOL Conversion > Unix (LF) ).

Then try to start nginx container with rebuild option:

docker-compose up --build nginx

于 2018-11-20T11:21:11.513 回答