我有一个非常简单的项目:
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
。你知道我在做什么错吗?
答案 0 :(得分:0)
当您运行Docker Compose文件时,首先运行build:
块,它会忽略该块之外的所有选项。 Dockerfile从未挂载过卷,也无法对其他Compose容器进行网络调用,也不会看到在其他位置设置的environment:
变量。
这意味着您必须COPY
对其进行显式RUN
编码。
FROM node:ls
WORKDIR /scripts
COPY script.sh .
RUN ./script.sh