Trouble copying a config file in a multi-stage build with a wild card
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
add a comment |
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
add a comment |
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
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
docker docker-compose
asked Nov 27 '18 at 8:33
Ewan ValentineEwan Valentine
1,46921842
1,46921842
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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
Ahhh of course! Silly me. Thanks!!
– Ewan Valentine
Nov 27 '18 at 13:50
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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
Ahhh of course! Silly me. Thanks!!
– Ewan Valentine
Nov 27 '18 at 13:50
add a comment |
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
Ahhh of course! Silly me. Thanks!!
– Ewan Valentine
Nov 27 '18 at 13:50
add a comment |
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
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
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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