我想创建一个自定义Docker容器Github操作,并从这个操作开始.yml文件

name: my-action
description: For testing purposes
branding:
  icon: shield
  color: green
inputs:
  my-input:
    description: demo
    required: true
runs:
  using: docker
  image: Dockerfile

接下来,我在根目录中的一个app.js文件中添加了一些代码

const core = require('@actions/core');

try {
  const myInput = core.getInput('my-input', { required: true });

  core.notice(`Input is: ${myInput}`);
} catch (error) {
  core.setFailed(error.message);
}

Dockerfile

FROM node:16.13.0-alpine

USER node
WORKDIR /home/node

ADD --chown=node:node . /home/node
RUN npm install

CMD [ "node", "app.js" ]

为了测试我的操作,我发布了我的操作并创建了一个新的工作流

name: Run the action

on: workflow_dispatch

jobs:
  run-the-action:
    runs-on: ubuntu-latest
    steps:
      - name: Run the action
        uses: me/my-action@v1.0.0
        with:
          my-input: hello

不幸的是,该操作因错误消息而崩溃

错误:找不到模块"/github/workspace/app".js'

enter image description here

也许我错过了从/home/node/github/workspace的映射?有人知道哪里出了问题,或者如何解决吗?

如果你需要更多信息,请告诉我!

推荐答案

这个Dockerfile为我工作

FROM node:16.13.0-alpine

USER node

ADD --chown=node:node . /home/node
RUN cd /home/node && \
    npm install --production

CMD [ "node", "/home/node/app.js" ]

Node.js相关问答推荐

FindOne()返回所有值,而不是一个值

为什么 mongoose 没有常规数组方法

如果我在 tsx 文件中使用了use client,ssr 会如何发生?

我需要聚合两个 MongoDB 集合

为什么 FastAPI 需要 Web 服务器(即 Nginx)而不是 Express API?

Typescript typeRoots 未检测到类型定义

firebase/messaging 不提供名为 getToken 的导出

npm install 在 Mac 上的 Node-gyp 构建错误

如何调用同名的两个函数?

为什么我的 Heroku Express API 数据是持久的,即使它只是来自一个变量

如何promise AWS JavaScript 开发工具包?

Node.js 表达的 Error 对象expose 了哪些属性?

构建 vue cli 后如何运行生产站点

Dart 语言比 JavaScript (Node.js) 有什么好处

Node.js + Express:应用程序不会开始监听端口 80

向 Stripe 提交付款请求时出现没有此类令牌错误

如何使用 Node.js、Express 和 Mongoose 进行身份验证?

如何使用 Node.js 在服务器端管理多个 JS 文件

__dirname 未在 Node 14 版本中定义

如何创建安全(TLS/SSL)Websocket 服务器