PHP容器未在Docker中启动

时间:2019-04-02 07:23:40

标签: php

当我运行docker-compose时,出现错误:

php_1       | /usr/local/bin/docker-entrypoint.sh: line 2: $'\r': command not found
php_1       | Do not run Composer as root/super user! See https://getcomposer.org/root for details
php_1       |
php_1       |
php_1       |   [Symfony\Component\Console\Exception\CommandNotFoundException]
" is not defined.
php_1       |
php_1       |   Did you mean this?
php_1       |       update
php_1       |
php_1       |
php_1       | /usr/local/bin/docker-entrypoint.sh: line 4: $'\r': command not found
: not found | /usr/local/bin/docker-entrypoint.sh: line 5: exec: php-fpm

我尝试重新启动docker,删除容器并重新启动,但是没有帮助

docker-entrypoint.sh代码:

#!/usr/bin/env bash

composer update

exec "$@"

我曾经使用过ubuntu,现在我已经安装了Windows,现在出现此错误。 请告诉我如何解决此问题,我已经花了3多个小时没有结果(

2 个答案:

答案 0 :(得分:1)

错误“ /usr/local/bin/docker-entrypoint.sh:第2行:$'\ r':找不到命令”,以及docker-entrypoint.sh脚本的内容(仅包含一个2)处的空白行表示行尾已损坏。

您应确保容器使用的文件具有UNIX行尾(\ n),而不是Windows行尾(\ r \ n)。

答案 1 :(得分:0)

请确保每当有人在Windows上任何类型的编辑器上进行任何编辑以转换行尾时,都对脚本文件运行dos2unix,(建议)从计算机中删除dos2unix。

在您的情况下:

# add this line after FROM line
RUN apt-get update && apt-get install -y dos2unix
RUN dos2unix /usr/local/bin/docker-entrypoint.sh && apt-get --purge remove -y dos2unix
# --> continue your ./docker/php/Dockerfile content

检查我的答案https://stackoverflow.com/a/55470819/7596401