首页 > 解决方案 > 构建参数不从 docker-compoes.yml 传递到 Dockerfile

问题描述

我的 docker-compose.yml:

version: "3.8"

services:
  web:
    build:
      context: .
      args:
        file_url: 'some-url'

我的 Dockerfile:

FROM ruby:2.7.4-bullseye

ARG file_url

RUN curl $file_url -L -o "file"

当我运行时:

docker-compose up --build

我希望 Docker 会构建并启动我的容器。但相反,我得到了:

Step 4/12 : RUN curl $file_url -L -o "file"
 ---> Running in 59696c6274c7
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

所以很明显构建参数没有传递给 Dockerfile。我在 Stackoverflow 上阅读了很多类似的主题,但无法弄清楚出了什么问题。

还有一件事。我实际上可以docker-compose build web很好地构建容器。只是在我运行docker-compose up --builddocker-compose up发生错误时。

标签: dockerdocker-compose

解决方案


该变量未在您的 dockerfile 中正确传递。在 dockerfile 中查看变量调用:https ://docs.docker.com/engine/reference/builder/

理想情况下,它包含在里面${variable_name}。这条线RUN curl $file_url -L -o "file需要整改。

在您的 Dockerfile 更改$file_url${file_url}


推荐阅读