docker-compose启动失败:CLI抛出not foundrypoints.sh: ./.env: line 2:错误
解决amazee.io容器启动时
.env文件第2行"not found"错误 检查
.env文件的换行符格式
容器基于Linux环境,若.env文件使用Windows的CRLF换行符,会导致每行末尾的\r被识别为命令的一部分,触发"not found"错误。可以用cat -A .env查看文件,若看到行尾有^M标记,说明是CRLF格式。执行dos2unix .env转换为LF格式,或在编辑器中将换行符设置为"LF (Unix)"。检查
.env文件第2行的内容格式
确保第2行符合KEY=VALUE的标准格式:- 行首不要有空格或制表符,否则bash会将其视为命令名
- 不要存在未赋值的孤立变量名(如单独一行
FOO会被当成命令,FOO=是允许的) - 避免包含不可见特殊字符,可通过
hexdump -C .env | head -10查看二进制内容排查
验证
entrypoints.sh加载.env的逻辑
确认entrypoints.sh中加载.env的代码路径正确,比如使用. ./.env或source ./.env时,确保.env文件确实在容器的工作目录下。可以在加载前增加存在性检查:if [ -f ./.env ]; then . ./.env else echo ".env file not found in working directory" fi检查容器内的
.env文件状态
构建成功不代表.env文件被正确复制到容器中,执行以下命令查看容器内的文件内容:docker run --rm -it <你的镜像名称或ID> cat ./.env确认内容与本地文件一致,格式无异常。
内容的提问来源于stack exchange,提问作者linux_fanatic
相关产品推荐
相关产品推荐

