作者VivianAnn (薇薇安安)
看板Linux
标题[问题] docker container 和 submodule 的问题
时间Thu Mar 23 16:26:04 2023
各位达人好
本人在 host machine 的/root/test目录加入一个submodule (这里以matplotlib为例):
cd /root/test
git submodule add
https://github.com/matplotlib/matplotlib.git sm/matplotlib
然後同样在/root/test中写了一个简单的Dockerfile (sub.Dockerfile)
FROM debian:buster
RUN apt-get update && apt install -qy git
RUN --mount=type=bind,source=sm/matplotlib,target=/root/sm/matplotlib,rw
建立image (test_sm) 并进入container:
docker build -t test_sm -f /root/test/sub.Dockerfile .
docker run -it test_sm
却发现在container中的/root/sm/matplotlib完全没有东西,host machine中的
sm/matplotlib 好像没有 mount 到 container中
请问大家有碰过类似的事吗? 感谢各位看完我的问题
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 47.187.207.248 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1679559967.A.CE9.html
1F:推 yvb: 不了解您的意思. Dockerfile 是建立 docker image 时用的, 03/23 17:02
2F:→ yvb: 其中的 RUN 後面是执行什麽 outcall 命令, 就像 apt-get .... 03/23 17:04
3F:→ yvb: 你要 mount 应该是在 docker run 後面加参数. 03/23 17:04
4F:→ yvb: 建立 docker image 是指 docker build ... 那一句. 03/23 17:07
5F:→ VivianAnn: FROM和RUN都是dockerfile中的内容,我是在dockerfile 03/23 21:40
6F:→ VivianAnn: 中mount 03/23 21:40
7F:→ lycantrope: 建立时本来就没再mount 要run时候才mount 03/23 21:44
8F:→ VivianAnn: 不太懂,我是在run container後发现sm/matplotlib里面 03/23 22:31
9F:→ VivianAnn: 没东西,这样正常吗 03/23 22:31
10F:→ CP64: 这正常 因为那是 build 时 mount 进去的 03/23 22:34
11F:→ CP64: 那个 mount 在跑完那一行 RUN 时就会 unmount 了 03/23 22:35
12F:→ CP64: 你想要在 docker run 时使用的话还是要用 -v 指定 03/23 22:35
13F:→ Typebrook: 正确来说,RUN 後面本来就是接 executable file 03/24 00:46
14F:→ Typebrook: 文件要看啦: 03/24 00:47
15F:→ Typebrook: docs.docker.com/engine/reference/builder/#run 03/24 00:47
16F:→ VivianAnn: 感谢各位,我的底子差,,比较抓不到方向 03/25 08:01
17F:→ iwant2sleep: 试着在sm/matplotlib里下以下指令: 03/26 00:21
18F:→ iwant2sleep: git submodule init && git submodule update 03/26 00:21
19F:→ iwant2sleep: 然後再mount 03/26 00:21
20F:→ yvb: 请问原PO在哪看到 --mount... 那一句而抄来用的? 03/27 20:37
21F:→ lycantrope: 原PO去年就问docker了,都快一年过去应该没时间学吧 03/28 11:20
22F:→ firejox: copy不好吗 04/04 10:58