Bitbucket Pipeline无法切换目录提示No such file or directory问题求助
报错No such file or directory的核心原因是CI执行cd sites命令时,当前工作目录下不存在名为sites的子目录,可按以下步骤排查解决:
- 先确认当前CI环境的目录结构,在原有script的最开头新增目录打印命令,定位实际路径:
script: - pwd # 打印当前工作目录的绝对路径 - ls -la # 列出当前目录下的所有文件、文件夹,确认sites是否存在 - cd sites
执行后看输出结果,如果输出的当前目录不符合预期,或者ls结果里没有sites文件夹,对应调整路径即可。
- 注意区分绝对路径和相对路径:你预期的构建目录是
/sites/mywebsitename,路径开头带/是系统根目录下的绝对路径,你写的cd sites是相对当前工作目录的相对路径。如果你要进入根目录下的sites文件夹,应该改为cd /sites;如果要直接进入目标构建目录,直接写cd /sites/mywebsitename即可。 - 如果确认目录本身不存在,可以提前新增目录创建命令,避免手动操作:
script: - mkdir -p /sites/mywebsitename # -p参数会自动创建层级目录,目录已存在也不会报错 - cd /sites/mywebsitename
- 如果想避免每次执行命令都切换目录,可以直接在step中指定默认工作目录,参考配置如下:
image: php:7.4 pipelines: branches: master: - step: name: Deploy to production deployment: production working-directory: /sites/mywebsitename # 该step下所有命令默认在这个目录执行 script: # 直接写你的构建、部署命令即可,不需要再执行cd
内容的提问来源于stack exchange,提问作者billybadass
相关产品推荐
相关产品推荐

