如何使用GitHub Actions在容器内部执行代码?
解决GitHub Actions容器内执行index.js找不到文件的问题
你的问题核心是当前工作目录与容器内置index.js的路径不匹配:GitHub Actions默认会将仓库代码挂载到容器的/github/workspace目录,而你的index.js是容器自带的,不在这个默认路径下,因此出现找不到文件的错误。以下是具体解决方法:
步骤1:定位容器内index.js的绝对路径
先在Actions步骤中添加查找命令,确认文件的具体位置:
run-integration-test: runs-on: ubuntu-latest container: image: image.com:latest # 注意:原配置的http://前缀要去掉,Docker镜像地址不需要HTTP协议 steps: - run: find / -name index.js
运行该任务后,查看日志输出的路径(比如可能是/app/index.js)。
步骤2:指定路径运行index.js
根据查到的路径,选择以下任意一种方式执行:
方式一:使用绝对路径直接运行
run-integration-test: runs-on: ubuntu-latest container: image: image.com:latest steps: - run: node /app/index.js # 替换成你查到的实际绝对路径
方式二:切换到文件所在目录后运行
run-integration-test: runs-on: ubuntu-latest container: image: image.com:latest steps: - run: | cd /app # 替换成文件所在目录 node index.js
方式三:配置容器默认工作目录
直接在container配置中指定工作目录,后续run步骤默认会在该目录下执行:
run-integration-test: runs-on: ubuntu-latest container: image: image.com:latest working-directory: /app # 替换成index.js所在的目录 steps: - run: node index.js
额外注意:原配置中image: http://image.com:latest的写法错误,Docker镜像地址不需要加http://前缀,直接写image.com:latest即可,否则会导致镜像拉取失败。
内容的提问来源于stack exchange,提问作者bezzoon
相关产品推荐
相关产品推荐

