Docker正在将上下文目录复制到我的工作目录中

时间:2019-03-13 23:26:48

标签: docker docker-compose

我有一个非常简单的图像:

FROM node:11-alpine

WORKDIR /app

COPY src /app/src

RUN cd src \
    && npm i --no-cache \
    && npm run build

CMD cd src \
    && npm run start

在构建过程中一切正常,例如一个简单的ls -R /揭示了以下树:

/:
app/

/app:
src/

/app/src:
package.json ...

但是当我尝试启动它时,我发现以下结构:

/:
app/

/app/:
src/

/app/src/:
src/ ... more files from the context dir that I never COPYed

/app/src/src/:
package.json ...

如果我RUN ls -R /之后npm run build得到了“好”树,甚至在ls -R /之前的一层运行了CMD我得到了同样的“好”树,但是CMD之后的任何一层(包括CMD本身)都会给我“错误”的树,例如:

CMD ls -R / && cd src && npm run start

它显示/app/src/src,就像它正在获取上下文目录的所有内容并将它们放在WORKDIR/src(即/app/src)之下一样

Docker为什么要这样做?

我在跑步

  

Docker版本18.09.3,内部版本774a1f4

     

docker-compose版本1.23.2,内部版本1110ad0

1 个答案:

答案 0 :(得分:0)

在家里一个“更清洁”的环境中摆弄之后,我发现,正如评论所表明的,罪魁祸首是卡住的体积,它正在安装[{'Country': 'Westeros', 'ID': '12', 'Name': 'Jon Snow', 'Street': 'Winterfell #45', 'University': 'U of Winterfell', 'Zipcode': '60434'}, {'Country': 'United States', 'ID': '13', 'Name': 'Steve Rogers', 'Street': '108 Chelsea St.', 'University': 'NYU', 'Zipcode': '23333'}, {'Country': 'United States', 'ID': '20', 'Name': 'Peter Parker', 'Street': '34 Tribeca', 'University': 'Yale', 'Zipcode': '32444'}, {'Country': 'Westeros', 'ID': '34', 'Name': 'Tyrion Lannister', 'Street': 'Kings Landing #89', 'University': 'U of Casterly Rock', 'Zipcode': '43543'}] ,即使这样的事情不再存在。我的./myapp:/app/src文件的“ volumes”部分,然后通过简单的yes | docker系统修剪完成了任务。