将Docker容器的构建输出写入主机

问题描述

我有一个像这样的简单dockerfile

# develop stage
FROM node:alpine as develop-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .

# build stage
FROM develop-stage as build-stage
RUN npm run build

而且我很确定在docker运行完成之后,容器中有/ app / dist作为已构建的工件,我想使用这样的卷将其从容器导出到外部主机系统:

docker run -v $(pwd)/artifacts:/app/dist test-vue 

,但是没有任何内容写入我创建的工件目录。有什么想法吗?

解决方法

使用-v $(pwd)/artifacts:/app/dist会将容器的内容替换为主机的内容。

Documentation

如果您将绑定安装到容器上的一个非空目录中,则该目录的现有内容会被绑定安装遮盖。

如果要导出,则需要在容器启动后将文件复制到一个卷中。有一些用于备份/恢复卷here的示例。

docker exec <container> cp <src> <dst>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...