【发布时间】:2020-11-14 17:47:45
【问题描述】:
我有大量的测试文件 (3.2 gb),如果设置了环境变量 (DEBUG),我只想将它们添加到容器中。为了在本地进行测试,我将这些设置在 docker-compose 文件中。
到目前为止,我已将测试数据文件夹添加到 .dockerignore 文件中,并尝试了我的 Dockerfile 中提到的here 解决方案,但没有任何成功。
我还尝试在我的 docker 文件中调用的 run_app.sh 中运行 cp 命令:
cp local/folder app/testdata
但是得到cp: cannot stat 'local/folder': No such file or directory,我猜是因为它试图在容器内找到我本地机器上存在的文件夹?
这是我的 docker 文件:
RUN mkdir /app
WORKDIR /app
ADD . /app/
ARG DEBUG
RUN if [ "x$DEBUG" = "True" ] ; echo "Argument not provided" ; echo "Argument is $arg" ; fi
RUN pip install -r requirements.txt
USER nobody
ENV PORT 5000
EXPOSE ${PORT}
CMD /uus/run_app.sh
【问题讨论】:
-
恐怕这里唯一的解决方案是拥有两个 Dockerfile——一个用于调试目的,另一个用于生产/其他。你可以编写一个 shell 脚本来构建特定的图像,但是你不能在 Dockerfile 本身中使用条件。
标签: docker docker-compose dockerfile run-app