Docker为什么不将我的卷绑定到容器?

时间:2020-06-04 23:48:31

标签: docker docker-compose dockerfile

我有一个非常简单的项目:

Dockerfile:

from node:lts

VOLUME /scripts
WORKDIR /scripts

RUN bash -c 'ls /'
RUN bash -c 'ls /scripts'

RUN script.sh

docker-compose.yml:

version: '3.7'
services:
    service:
        build: .
        volumes:
            - .:/scripts

然后我运行docker-compose build,但失败,并显示/bin/sh: 1: script.sh: not found

ls /scripts中,我可以看到Docker没有将我的脚本绑定到容器。我有Docker 19.03.8。你知道我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

当您运行Docker Compose文件时,首先运行build:块,它会忽略该块之外的所有选项。 Dockerfile从未挂载过卷,也无法对其他Compose容器进行网络调用,也不会看到在其他位置设置的environment:变量。

这意味着您必须COPY对其进行显式RUN编码。

FROM node:ls
WORKDIR /scripts
COPY script.sh .
RUN ./script.sh
相关问题