美文网首页
docker打包npm问题

docker打包npm问题

作者: xiao_xian | 来源:发表于2021-09-12 15:49 被阅读0次

    打包命令:
    docker build -t demo-fraud-webapp:latest -f webapp/webapp.Dockerfile webapp/
    提示错误信息:

    #17 187.1 > front-end@0.1.0 postinstall /home/node/app
    #17 187.1 > ./scripts/fix-leader-line.sh
    #17 187.1
    #17 187.1 sh: 1: ./scripts/fix-leader-line.sh: not found
    #17 187.1 npm ERR! code ELIFECYCLE
    #17 187.1 npm ERR! syscall spawn
    #17 187.1 npm ERR! file sh
    #17 187.1 npm ERR! errno ENOENT
    #17 187.1 npm ERR! front-end@0.1.0 postinstall: `./scripts/fix-leader-line.sh`
    #17 187.1 npm ERR! spawn ENOENT
    #17 187.1 npm ERR!
    #17 187.1 npm ERR! Failed at the front-end@0.1.0 postinstall script.
    #17 187.1 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    #17 187.1
    #17 187.1 npm ERR! A complete log of this run can be found in:
    #17 187.1 npm ERR!     /root/.npm/_logs/2021-09-12T06_36_08_995Z-debug.log
    ------
    executor failed running [/bin/sh -c npm ci --unsafe-perm]: exit code: 1
    

    webapp.Dockerfile内容:

    # --- UI Build
    FROM node:10 as ui-build
    WORKDIR /home/node/app
    
    COPY package.json package-lock.json tsconfig.json ./
    COPY scripts scripts
    RUN npm ci --unsafe-perm  # 运行到该命令出错
    COPY public public
    COPY src/app src/app
    COPY src/index.tsx src
    COPY src/react-app-env.d.ts src
    RUN npm run build
    

    开始以为是不存在文件scripts/fix-leader-line.sh
    接着进入docker交互模式,手动把文件上传容器中:

    docker cp .\scripts\ 4298535f77cc:/home/node/app/scripts/ 
    

    重新执行:npm ci --unsafe-perm

    仍报该错误,根据打印信息进到日志文件/root/.npm/_logs/2021-09-12T06_36_08_995Z-debug.log
    错误信息:

    16733 verbose pkgid front-end@0.1.0
    16734 verbose cwd /home/node/app
    16735 verbose Linux 5.4.72-microsoft-standard-WSL2
    16736 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "ci" "--unsafe-perm"
    16737 verbose node v10.24.1
    16738 verbose npm  v6.14.12
    16739 error code ELIFECYCLE
    16740 error syscall spawn
    16741 error file sh
    16742 error errno ENOENT
    16743 error front-end@0.1.0 postinstall: `./scripts/fix-leader-line.sh`
    16743 error spawn ENOENT
    16744 error Failed at the front-end@0.1.0 postinstall script.
    16744 error This is probably not a problem with npm. There is likely additional logging output above.
    16745 verbose exit [ 1, true ]
    

    猜测是上传的文件使用的CRLF格式导致,使用Idea转为LF,重新上传,重新打包,问题解决!

    相关文章

      网友评论

          本文标题:docker打包npm问题

          本文链接:https://www.haomeiwen.com/subject/dmhtgltx.html