打包 docker 镜像时,在执行 source ~/.bashrc 就会报错退出,错误代码 returned a non-zero code: 1 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CallMeReznov
V2EX    Docker

打包 docker 镜像时,在执行 source ~/.bashrc 就会报错退出,错误代码 returned a non-zero code: 1

  •  
  •   CallMeReznov 2019-04-08 17:36:56 +08:00 7851 次点击
    这是一个创建于 2452 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我尝试着打包一个 pomelo 的业务,因为程序内涉及到其他命令(如 sysstat 命令)就没有直接选择 pomelo 的镜像.
    我计划是使用 centos 作为基础镜像,使用 dockerfile 运行 yum 安装需要的相关软件后接连再安装 nvm,node,pomelo.
    但就按照正常程序执行以下命令后却报错

    docker build -t pomelo_t1 . 

    错误信息:

    The command '/bin/sh -c source ~/.bashrc' returned a non-zero code: 1 

    搜索了各方也没有一个完整的回答,于是就来 V2 求助了

    以下是 dockerfile

    FROM centos:7 MAINTAINER Reznov WORKDIR /root RUN yum install -y wget sysstat make gcc gcc+ gcc-c++ \ && wget https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh \ && chmod +x ./install.sh \ && ./install.sh RUN source ~/.bashrc RUN nvm install v4.6.2 \ && npm install [email protected] -g --unsafe-perm CMD ["node", "-v"] 

    平常一直都是学习和测试的方式"玩"docker 的,今天是第一次真正尝试打包公司业务.
    另外各位还有别的更优的方式来打包这个镜像吗?

    6 条回复    2019-04-11 17:47:17 +08:00
    julyclyde
        1
    julyclyde  
       2019-04-10 18:36:47 +08:00
    1 你看看.bashrc 里有啥错
    2 你这样 source 是不会有效果的,多个命令是分别运行的,不是在同一个 shell 里
    CallMeReznov
        2
    CallMeReznov  
    OP
       2019-04-10 19:23:00 +08:00
    @julyclyde #1 其实今天我找了一下网上其他人打包 NVM 的 dockerfile,也查了外网的一些回答
    有因为说默认 docker 用的是 sh 而非 bash 问题导致的.
    也有说 bashrc 里是 NVM 的环境变量,需要用 ENV 手动设置
    最后还是看了一下 http://ju.outofmemory.cn/entry/130810
    这里的方式最后成功执行了 NVM.
    julyclyde
        3
    julyclyde  
       2019-04-11 15:01:20 +08:00
    @CallMeReznov docker 里并没有所谓“默认某种 shell ”的情况。取决于你用的 image 里的内容
    julyclyde
        5
    julyclyde  
       2019-04-11 17:46:24 +08:00
    @CallMeReznov 嗯,那你遇到了不止一个问题
    我强调的方面是,因为 sourc 命令仅对“当前 shell ”有效,而多个 RUN 其实是“分别调用了多次 shell ”,前边的 source 对后边无任何效果
    julyclyde
        6
    julyclyde  
       2019-04-11 17:47:17 +08:00
    @CallMeReznov 以及,你发一个 stackoverflow 并不能说明 docker 里有所谓默认 shell
    照样是没有的。取决于你用的 image
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1038 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:37 PVG 02:37 LAX 10:37 JFK 13:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86