zoukankan      html  css  js  c++  java
  • 【笔记】script.sh: source: not found in docker 问题

    tmp/durable-d67c81b9/script.sh: source: not found in docker

    在jenkins中使用pipeline搭建工程,将脚本中docker run命令替换成 withDockerContainer格式
    源命令为:

    docker run -it --name xxx -v xxxxx imagename /bin/bash -c source build/envsetup.sh && lunch XXXXX && make XXX j`nproc`"
    

    替换后为:

    withDockerContainer(args: "-u XXXXX", 
                                image: 'XXXXX:v0.1')	 {
                                sh "echo `pwd`"
                                sh "cd $DEST_DIR && source build/envsetup.sh && lunch XXXXX && make XXX j`nproc`"
                            }
    

    jenkins报如下错误:

    /home/jenkins/XXXXXX@tmp/durable-d67c81b9/script.sh: 2: 
    /home/jenkins/XXXXXX@tmp/durable-d67c81b9/script.sh: source: not found
    

    从报错上看是找不到source命令,很奇怪为什么会跑到@tmp目录下取找这个命令,后来的解决方法是:
    docker镜像是基于Ubuntu系统,默认使用dash,docker在没有指定的情况下会调用系统中的dash,修改docker中sh的指向,指向bash 该问题就能找到source命令了。
    1、进入docker容器:

    docker run -it XXXXXXXXX 
    

    2、查看默认sh的指向

    ls -l /bin/sh
    

    3、修改指向:执行命令选择否

    sudo dpkg-reconfigure dash
    选择否
    或者使用链接指向:
    ln -s /bin/bash /bin/sh
    

    4、查看修改是否成功

       ls -l /bin/sh
    

    5、退出并将容器打上tag并保存为镜像,下次使用新的镜像即可

  • 相关阅读:
    PS软件之,快速的修改图片你的尺寸
    想的太多,做的太少
    Java-Junit 的Hello world
    Java-hibernate的映射文件
    工作思路
    Spring入门Hello World
    PHP 进制问题
    Java-hibernate的Hello World
    PHP获得header头进行分析
    动软模板使用教程
  • 原文地址:https://www.cnblogs.com/liurizhou/p/10196183.html
Copyright © 2011-2022 走看看