有人可以向我解释为什么这条线是必需的以及这条线在做什么?
RUN sh -c 'touch /app.jar'
完整的docker文件看起来像这样,并且在每个templane中都可以找到它。
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD docker-example-service-1.0.jar app.jar
RUN sh -c 'touch /app.jar'
EXPOSE 8080
ENV JAVA_OPTS=""
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dapp.port=${app.port}", "-jar","/app.jar"]
答案 0 :(得分:0)
touch
是一个标准的Unix命令行界面程序,用于更新文件或目录的访问日期和/或修改日期。 [...] Touch对于快速为程序或脚本创建文件非常有用,这些程序或脚本需要具有特定名称的文件才能成功运行程序,但不要求文件具有任何特定内容。
在您的情况下,最有可能使用touch
命令来确保文件存在。
答案 1 :(得分:0)
touch命令会将时间戳更新为文件目录。
这样您就可以在创建和更新文件时跟踪文件。
RUN sh -c' touch /app.jar'
当您调用docker build时,上面的命令会将时间戳更新为app.jar。
有关触控命令的完整详情,请参阅以下链接 https://www.computerhope.com/unix/utouch.htm