首页 > 解决方案 > 尝试将构建工件从 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

标签: docker

解决方案


./client/test:/test绑定挂载会隐藏您/test在 docker build 阶段放入该文件夹的所有内容。

因此,您应该在图像的ENTRYPOINT中执行构建之类的操作,而不是在 docker 构建阶段。

或者,正如@emix 在评论中所说,您应该只使用 docker cp 命令而不是卷。


推荐阅读