在构建过程中使用卷目录

时间:2016-08-22 14:09:40

标签: docker docker-compose dockerfile

我正在尝试在构建过程中使用已安装的卷目录,但它现在未安装或未正确安装。

搬运工-compose.yml

version: '2'
services:
  assoi:
    restart: on-failure
    build:
        context: ./assoi
    expose:
        - "4129"
    links:
        - assoi-redis
        - assoi-postgres
        - assoi-mongo
        - assoi-rabbit
    volumes:
        - ./ugmk:/www
    command: pm2 start /www/ugmk.json
  ...

Dockerfile

...
WORKDIR /www
RUN ls -la
RUN npm i
RUN node install.js
...

sudo docker-compose build

...
Step 12 : WORKDIR /www
 ---> Using cache
 ---> 73504ed64194
Step 13 : RUN ls -al
 ---> Running in 37bb9f70d4ac
total 8
drwxr-xr-x  2 root root 4096 Aug 22 13:31 .
drwxr-xr-x 65 root root 4096 Aug 22 14:05 ..
 ---> be1ac6edce56
...

1 个答案:

答案 0 :(得分:1)

在构建期间,您不安装或更具体地说,您无法安装任何卷。

你做的是COPY,所以在你的情况下

COPY ./ugmk /www
WORKDIR /www
RUN ls -la
RUN npm i
RUN node install.js

卷适用于容器,而不适用于映像 - 卷应存储持久的用户生成数据。根据定义,这只能在运行时期间发生,因此对于“容器”。

尽管如此,上层COPY是您希望实现“使用预部署/资产编译的应用程序构建映像”的默认实践。