Не удается запустить Nginx в среде Docker в Windows по неизвестной причине - PullRequest
0 голосов
/ 18 ноября 2018

Итак, на прошлой неделе или около того я изо всех сил пытался заставить мой сервер 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. Я попытался перейти на /opt/startup.sh, но, похоже, его не было. Я обнаружил, что внутри laradock/nginx/ был еще один startup.sh, я зашёл в Docker VM и увидел, что каждая строка заканчивалась ^M, что, как я подозреваю, могло быть \r. Я удалил их, но на самом деле ничего не изменилось, все еще возникла та же проблема.

Находясь в ssh, я также сделал hexdump для запуска bash-файла, используя hexdump startup.sh | grep 0d0a, но ничего не вышло. Я в недоумении для решений, и не совсем уверен, что еще я могу попытаться сделать. Обратите внимание, что о Docker для Windows или BitLocker не может быть и речи, поскольку у меня только Windows 10 Home.

Что я мог попытаться решить эту проблему? Это известная проблема?

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете попытаться преобразовать laradock\nginx\startup.sh конец файла в стиле в стиле Windows в конец строки в стиле linux , т. Е. С помощью Notepad ++ («Правка»> «Преобразование EOL»> «Unix (LF)»).

Затем попробуйте запустить контейнер nginx с опцией перестроения:

docker-compose up --build nginx

...