V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qaqLjj
V2EX  ›  问与答

dockfile 里命令为啥这样写,高手或者熟悉 Linux 命令的老哥请进!

  •  
  •   qaqLjj · 2022-02-25 19:17:18 +08:00 · 1269 次点击
    这是一个创建于 1009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景是,有一个 dockerfile ,里面是运行 java 程序
    cloud.tar.gz 的结构如下:

    parent/  
      bin/  
        start.sh  
      lib/  
        app.jar  
    
    FROM *************
    
    WORKDIR /
    
    COPY cloud.tar.gz ./
    
    RUN export DST_DIR=`tar tf cloud.tar.gz | awk  -F / 'NR==1{print $1}'`  && \
    
        tar zxf cloud.tar.gz  && \
    
        dos2unix ./$DST_DIR/bin/*.sh && \
    
        chmod -R 755 ./$DST_DIR
    
    EXPOSE 9000
    
    CMD /script/start.sh //`tar tf cloud.tar.gz | awk  -F / 'NR==1{print $1}'`/bin/start.sh
    

    最后一行那里,有两个地方不明白:

    1. 为啥可以a.sh b.sh,两个脚本并排写,用空格隔开啊,我试了一下,这样只有第一个脚本会执行
    2. 第二个脚本那里,我为啥是//双杠开头啊,感觉也不像转义啊
      求高手解惑
    4 条回复    2022-02-27 03:12:37 +08:00
    wd
        1
    wd  
       2022-02-25 19:33:42 +08:00 via iPhone
    并排写就是参数吧 这其实你自己写一个简单实验下就行呀
    qaqLjj
        2
    qaqLjj  
    OP
       2022-02-25 19:50:20 +08:00 via Android
    @wd 感谢老哥,我看了第一个脚本,第二个脚本确实是参数,传给了第一个,感谢。
    但是那个路径为啥是双杠呀,这个还是没懂
    wd
        3
    wd  
       2022-02-25 20:25:30 +08:00 via iPhone
    @qaqLjj 我记得是和单个的 / ,没啥区别
    dangyuluo
        4
    dangyuluo  
       2022-02-27 03:12:37 +08:00
    打开 Shell 调试就什么都知道了

    set -x
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   949 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:32 · PVG 04:32 · LAX 12:32 · JFK 15:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.