我有一个包含Dockerfile的镜像,其中包含以下说明:-
FROM openjdk:8-jre
VOLUME ["/hygieia/logs"]
RUN mkdir /hygieia/config
EXPOSE 8080
ENV PROP_FILE /hygieia/config/application.properties
WORKDIR /hygieia
COPY target/*.jar /hygieia
COPY docker/properties-builder.sh /hygieia/
CMD ./properties-builder.sh &&\
java -Djava.security.egd=file:/dev/./urandom -jar *.jar --spring.config.location=$PROP_FILE
现在,我想使用它作为基础镜像,并将其标记为,例如,使用它构建一个新的镜像,但将properties-builder文件覆盖为新的指令。以下是我正在尝试做的事情:
FROM hygieiaapi:latest
COPY docker/properties-builder.sh /hygieia/
ENTRYPOINT ./properties-builder.sh &&\
java -Djava.security.egd=file:/dev/./urandom -jar *.jar --spring.config.location=$PROP_FILE
因此,我要做的就是将/hygieia目录下的properties-builder.sh文件替换为新的properties-builder.sh文件,然后使用入口点重置基本映像中的CMD。我不确定复制指令是否能够复制properties-builder.sh文件并将其替换为已经存在的文件(从基本映像),或者这是否会发生冲突。我还没有构建和测试这一点,我想先寻求澄清。请提个建议。
发布于 2020-06-09 23:12:58
我能知道你为什么要更换properties-builder.sh吗?我已经成功地使用他们默认的dockerfile & property-builder.sh打开了这个hygieia应用程序接口镜像。
如果您想要更改属性文件中的值,您可以只使用环境变量来存储值。在创建application.properties文件时,properties-builder.sh检查env的值。
https://stackoverflow.com/questions/60191792
复制相似问题