【发布时间】:2021-10-26 20:42:25
【问题描述】:
我想做的是, 我使用 Ubuntu 作为基础镜像创建了一个 docker 文件,
ARG VERSION
FROM ubuntu:18.04
COPY configs/base.properties /root/base.properties
此属性文件包含一些配置,Dockerfile 只是将其复制到容器中。 (假设我将此图像标记为configimage:1.0)
然后我创建了第二个 docker 文件,它使用上面的 docker 镜像作为基础镜像。 (假设我将其标记为midbase:1.0)
FROM configimage:1.0
COPY resource/bootstrap.sh .
RUN ["chmod", "a+x", "bootstrap.sh"]
CMD ["ls"]
脚本文件所做的只是将我在上一个图像中复制的配置复制到容器中的单独位置。
#!/bin/bash
mkdir -p ~/configs
cp --archive ~/root/base.properties ~/configs/base.properties
echo "Configs copied"
我添加了ls 命令来检查该文件夹是在容器中创建的(在midbase:1.0 中),但我注意到configs 文件夹不是在midbase:1.0 容器中创建的。
你有什么技巧可以解决这个问题吗?
【问题讨论】:
-
~/root/base.properties不一定是与/root/base.properties相同的路径。这是故意的吗? --- 一般来说,我建议不要使用像~/something这样的路径,而是使用绝对路径或设置WORKDIR并使用相对路径。 -
啊哈!!感谢您的输入。我会试试的。 :)
-
soo... 有帮助吗?
-
你没有在任何地方运行
bootstrap.sh。
标签: linux docker shell dockerfile file-permissions