gpt4 book ai didi

java - Docker ARG不会被替换为Docker文件

转载 作者:行者123 更新时间:2023-12-02 20:57:26 26 4
gpt4 key购买 nike

我正在尝试在docker文件中使用ARG,但它不起作用,我是新手

这是我的 docker 文件

 ARG appver=0.0.1
ENV ausername=any
COPY ./target/userservice-${appver}-SNAPSHOT.jar .
CMD ["java", "-jar", "userservice-${appver}-SNAPSHOT.jar"]

因此,当我构建图像时,我希望jar名称为
 userservice-0.0.1-SNAPSHOT.jar

但是我得到的是
Step 9/10 : COPY ./target/userservice-${appver}-SNAPSHOT.jar .
---> 3f2772c50130
Step 10/10 : CMD ["java", "-jar", "userservice-${appver}-SNAPSHOT.jar"]
---> Running in 47286088595a

最佳答案

Docker不会在CMD步骤中扩展build args。您将需要做两件事。首先,将您的build arg复制到环境变量中。其次,切换到Shell语法以扩展该环境变量。

ARG appver=0.0.1
ENV ausername=any
ENV appver=${appver}
COPY ./target/userservice-${appver}-SNAPSHOT.jar .
CMD exec java -jar userservice-${appver}-SNAPSHOT.jar

我添加了一个exec,以便在扩展命令后立即摆脱pid 1中的shell。这有助于信号处理。

关于java - Docker ARG不会被替换为Docker文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62251953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com