CallMeReznov
V2EX  ›  Docker

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

  •  
  •   CallMeReznov · Apr 8, 2019 · 8046 views
    This topic created in 2627 days ago, the information mentioned may be changed or developed.

    我尝试着打包一个 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 replies    2019-04-11 17:47:17 +08:00
    julyclyde
        1
    julyclyde  
       Apr 10, 2019
    1 你看看.bashrc 里有啥错
    2 你这样 source 是不会有效果的,多个命令是分别运行的,不是在同一个 shell 里
    CallMeReznov
        2
    CallMeReznov  
    OP
       Apr 10, 2019
    @julyclyde #1 其实今天我找了一下网上其他人打包 NVM 的 dockerfile,也查了外网的一些回答
    有因为说默认 docker 用的是 sh 而非 bash 问题导致的.
    也有说 bashrc 里是 NVM 的环境变量,需要用 ENV 手动设置
    最后还是看了一下 http://ju.outofmemory.cn/entry/130810
    这里的方式最后成功执行了 NVM.
    julyclyde
        3
    julyclyde  
       Apr 11, 2019
    @CallMeReznov docker 里并没有所谓“默认某种 shell ”的情况。取决于你用的 image 里的内容
    julyclyde
        5
    julyclyde  
       Apr 11, 2019
    @CallMeReznov 嗯,那你遇到了不止一个问题
    我强调的方面是,因为 source 命令仅对“当前 shell ”有效,而多个 RUN 其实是“分别调用了多次 shell ”,前边的 source 对后边无任何效果
    julyclyde
        6
    julyclyde  
       Apr 11, 2019
    @CallMeReznov 以及,你发一个 stackoverflow 并不能说明 docker 里有所谓默认 shell
    照样是没有的。取决于你用的 image
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5561 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 02:05 · PVG 10:05 · LAX 19:05 · JFK 22:05
    ♥ Do have faith in what you're doing.