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

2022-02-25 19:17:18 +08:00
 qaqLjj

背景是,有一个 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. 第二个脚本那里,我为啥是//双杠开头啊,感觉也不像转义啊
    求高手解惑
1202 次点击
所在节点    问与答
4 条回复
wd
2022-02-25 19:33:42 +08:00
并排写就是参数吧 这其实你自己写一个简单实验下就行呀
qaqLjj
2022-02-25 19:50:20 +08:00
@wd 感谢老哥,我看了第一个脚本,第二个脚本确实是参数,传给了第一个,感谢。
但是那个路径为啥是双杠呀,这个还是没懂
wd
2022-02-25 20:25:30 +08:00
@qaqLjj 我记得是和单个的 / ,没啥区别
dangyuluo
2022-02-27 03:12:37 +08:00
打开 Shell 调试就什么都知道了

set -x

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/836467

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX