Trouble copying a config file in a multi-stage build with a wild card












0















I have the following 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


I'm passing in the stage argument in my docker-compose file, such as:



build:
context: ./run-query
args:
stage: latest


But I'm not getting the correct output, the ${stage} variable is blank.










share|improve this question



























    0















    I have the following 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


    I'm passing in the stage argument in my docker-compose file, such as:



    build:
    context: ./run-query
    args:
    stage: latest


    But I'm not getting the correct output, the ${stage} variable is blank.










    share|improve this question

























      0












      0








      0








      I have the following 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


      I'm passing in the stage argument in my docker-compose file, such as:



      build:
      context: ./run-query
      args:
      stage: latest


      But I'm not getting the correct output, the ${stage} variable is blank.










      share|improve this question














      I have the following 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


      I'm passing in the stage argument in my docker-compose file, such as:



      build:
      context: ./run-query
      args:
      stage: latest


      But I'm not getting the correct output, the ${stage} variable is blank.







      docker docker-compose






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 27 '18 at 8:33









      Ewan ValentineEwan Valentine

      1,46921842




      1,46921842
























          1 Answer
          1






          active

          oldest

          votes


















          1














          Ref https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact




          FROM instructions support variables that are declared by any ARG
          instructions that occur before the first FROM.



          An ARG declared before a FROM is outside of a build stage, so it can’t
          be used in any instruction after a FROM. To use the default value of
          an ARG declared before the first FROM use an ARG instruction without a
          value inside of a build stage




          You need to declare ARG stage again in the second stage



          FROM alpine
          ARG stage





          share|improve this answer


























          • Ahhh of course! Silly me. Thanks!!

            – Ewan Valentine
            Nov 27 '18 at 13:50











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53495548%2ftrouble-copying-a-config-file-in-a-multi-stage-build-with-a-wild-card%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Ref https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact




          FROM instructions support variables that are declared by any ARG
          instructions that occur before the first FROM.



          An ARG declared before a FROM is outside of a build stage, so it can’t
          be used in any instruction after a FROM. To use the default value of
          an ARG declared before the first FROM use an ARG instruction without a
          value inside of a build stage




          You need to declare ARG stage again in the second stage



          FROM alpine
          ARG stage





          share|improve this answer


























          • Ahhh of course! Silly me. Thanks!!

            – Ewan Valentine
            Nov 27 '18 at 13:50
















          1














          Ref https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact




          FROM instructions support variables that are declared by any ARG
          instructions that occur before the first FROM.



          An ARG declared before a FROM is outside of a build stage, so it can’t
          be used in any instruction after a FROM. To use the default value of
          an ARG declared before the first FROM use an ARG instruction without a
          value inside of a build stage




          You need to declare ARG stage again in the second stage



          FROM alpine
          ARG stage





          share|improve this answer


























          • Ahhh of course! Silly me. Thanks!!

            – Ewan Valentine
            Nov 27 '18 at 13:50














          1












          1








          1







          Ref https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact




          FROM instructions support variables that are declared by any ARG
          instructions that occur before the first FROM.



          An ARG declared before a FROM is outside of a build stage, so it can’t
          be used in any instruction after a FROM. To use the default value of
          an ARG declared before the first FROM use an ARG instruction without a
          value inside of a build stage




          You need to declare ARG stage again in the second stage



          FROM alpine
          ARG stage





          share|improve this answer















          Ref https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact




          FROM instructions support variables that are declared by any ARG
          instructions that occur before the first FROM.



          An ARG declared before a FROM is outside of a build stage, so it can’t
          be used in any instruction after a FROM. To use the default value of
          an ARG declared before the first FROM use an ARG instruction without a
          value inside of a build stage




          You need to declare ARG stage again in the second stage



          FROM alpine
          ARG stage






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 27 '18 at 10:27

























          answered Nov 27 '18 at 10:19









          SiyuSiyu

          2,92411227




          2,92411227













          • Ahhh of course! Silly me. Thanks!!

            – Ewan Valentine
            Nov 27 '18 at 13:50



















          • Ahhh of course! Silly me. Thanks!!

            – Ewan Valentine
            Nov 27 '18 at 13:50

















          Ahhh of course! Silly me. Thanks!!

          – Ewan Valentine
          Nov 27 '18 at 13:50





          Ahhh of course! Silly me. Thanks!!

          – Ewan Valentine
          Nov 27 '18 at 13:50




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53495548%2ftrouble-copying-a-config-file-in-a-multi-stage-build-with-a-wild-card%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Lallio

          Unable to find Lightning Node

          Futebolista