代码之家  ›  专栏  ›  技术社区  ›  Artsiom Miksiuk

Docker Alpine在Shell内部没有任何命令

  •  0
  • Artsiom Miksiuk  · 技术社区  · 6 年前

    我有下面的基于Alpine的节点应用的Docker声明。

    FROM node:8-alpine
    
    RUN npm install typescript
    RUN npm install ts-node
    RUN npm install puppeteer
    
    CMD [ "/bin/sh" ]
    

    在里面,我试着启动木偶师来呈现一些页面。我安装外部TS文件只是为了像这样执行它:

    docker run -v "$(pwd):/test/" --net host -it test-chromium
    

    当我试图在这个命令中执行时

    npx ts-node /test/render.ts
    

    它只是显示TS节点已经安装并挂起。什么都没有发生。为了检查这是否是chromium运行特定的问题,我尝试在repl模式下仅执行ts节点,如下所示:

    npx ts-node
    

    直接通过/bin

    ./node_modules/.bin/ts-node
    

    什么都没发生。进入HIT控制台后,只挂起,不显示输入提示。即使修改docker后直接从声明中执行,也不会有任何变化。

    我错过了什么?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Artsiom Miksiuk    6 年前

    找到原因了。它是TS节点,挂起时没有 tsconfig.json . 没有它,当我试图从根目录运行它时,typescript绑定以遍历所有要编译文件的文件夹。后 tsconfig.ts 添加并设置了适当的限制,脚本开始执行。

    Github对此问题的一些评论:

    https://github.com/TypeStrong/ts-node/issues/690#issuecomment-424178198