我想在Express App的Docker上为我的“公共”文件夹创建一个卷。因为当用户上传图片时,我将它们保存到“公用/上传”中,但是当我对代码进行更改并必须使用docker-compose run --build
进行重建时,我将丢失所有这些图像。
我试图找到一种创建卷的方法,但是我不知道如何链接它。
我的Dockerfile仅包含以下内容:
FROM node:8.10.0-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
# RUN npm ci --only=production
COPY . .
CMD [ "npm", "start" ]
我的目标是从“公共/上传”中提供上传的图片,并且不要在docker-compose run --build
时将其删除。
答案 0 :(得分:1)
根据官方documentation,您可以使用--mount
标志:
//Dockerfile
FROM node:8.10.0-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
# RUN npm ci --only=production
RUN --mount=target=/some_location_in_file_system,type=bind,source=public/uploads
COPY . .
CMD [ "npm", "start" ]