Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 在带有通配符的多阶段生成中复制配置文件时出现问题_Docker_Docker Compose - Fatal编程技术网

Docker 在带有通配符的多阶段生成中复制配置文件时出现问题

Docker 在带有通配符的多阶段生成中复制配置文件时出现问题,docker,docker-compose,Docker,Docker Compose,我有以下Dockerfile: FROM golang:alpine AS build ARG stage RUN apk update && apk upgrade && \ apk add --no-cache bash git openssh build-base ADD . /src WORKDIR /src RUN go get -u golang.org/x/vgo RUN vgo mod init && vgo mod vendo

我有以下Dockerfile:

FROM golang:alpine AS build
ARG stage
RUN apk update && apk upgrade && \
  apk add --no-cache bash git openssh build-base
ADD . /src
WORKDIR /src
RUN go get -u golang.org/x/vgo
RUN vgo mod init && vgo mod vendor && vgo build -o service

FROM alpine
RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
WORKDIR /app
COPY --from=build /src/${stage}-env.yml /app/
COPY --from=build /src/service /app/
RUN ls -la
ENTRYPOINT ./service
我正在docker compose文件中传递
stage
参数,例如:

build:
      context: ./run-query
      args:
        stage: latest
但是我没有得到正确的输出,
${stage}
变量为空

Ref

FROM指令支持由任何参数声明的变量 在第一个开始之前发生的指令

在FROM之前声明的ARG位于构建阶段之外,因此它不能 可以在FROM之后的任何指令中使用。使用的默认值 在第一个FROM之前声明的ARG使用不带 构建阶段内部的价值

您需要在第二阶段再次声明
ARG阶段

FROM alpine
ARG stage