docker - 尝试将构建工件从 docker 发布到主机系统
问题描述
我正在尝试将一些工件发布到我的主机系统,但我不知道该怎么做:
./docker/client/Dockerfile
FROM node:alpine
RUN mkdir -p /test
RUN echo "hi" > /test/log.txt
VOLUME /test
EXPOSE 3000
./docker-compose.yml
version: '3'
services:
platform-app-frontend:
image: platform-app-frontend
build: docker/client
volumes:
- ./client/test:/test
ports:
- '3100:3100'
我运行使用:
docker-compose up --build platform-app-frontend && ls docker/client/test
但是里面没有文件docker/client/test
编辑评论建议使用 2 种方法,使用ENTRYPOINT
或使用docker cp
.
我喜欢ENTRYPOINT
它,因为它在 .contiend 内Dockerfile
,但可惜它太慢了。所以我最终使用docker cp
解决方案
./client/test:/test
绑定挂载会隐藏您/test
在 docker build 阶段放入该文件夹的所有内容。
因此,您应该在图像的ENTRYPOINT中执行构建之类的操作,而不是在 docker 构建阶段。
或者,正如@emix 在评论中所说,您应该只使用 docker cp 命令而不是卷。
推荐阅读
- android - 如何根据我的应用程序设置 Android 的 GPU/cpu 频率?
- xml - 使用预期的 XML 从 XML 创建 XSL 文件
- stata - 如何将计算结果保存在变量中
- sql - SQL Query 连接两个表,类似于左外连接
- javascript - JS - 鼠标悬停时隐藏图标并显示文本
- javascript - 里程表滚动速度和持续时间增加
- linux - 提取两个单词之间的数据 Linux 脚本
- angular - ng test --code-coverage 在升级到 Angular 7 后仅考虑用于单元测试报告的 pollyfills 文件
- python - 如何将单选按钮设置为默认值?
- c# - 我可以以编程方式检查防病毒设置是否“由管理员管理”吗?