Docker build-arg和copy

时间:2017-04-18 13:12:24

标签: docker

尝试复制文件夹内容,当我对路径进行硬编码时,它会起作用:

COPY ./my-folder /path/to/location

但是需要能够改变这条路径,所以我尝试使用这样的构建参数:

COPY ${folderVariable} /path/to/location

然后使用

进行构建
--build-arg folderVariable=./my-folder

但它将所有内容复制到" my-folder"所在的文件夹中,当我只想要" my-folder"

的内容时

2 个答案:

答案 0 :(得分:18)

在使用前,您需要在<input type="number" name="min" ng-model="vm.item.min" ng-max="vm.item.max" required > 中使用ARG进行定义:

Dockerfile

并构建如下:

FROM alpine:3.3

ARG folderVariable=./my-folder # Optional default value to be `./my-folder`

COPY ${folderVariable} /opt/my-folder

更多详情请参阅:https://docs.docker.com/engine/reference/builder/#arg

答案 1 :(得分:8)

COPY --from=$var ...情况下,扩展仍然不起作用。 但是您可以创建中间图像作为别名,如下所示:

ARG docsBranch=4.5
ARG docsFullPath=registry.myCompany.pro/group/project-docs/docs:$docsBranch

# Lifehack
FROM $docsFullPath as docs

FROM node:10.21.0-buster-slim
WORKDIR /app

# Now we can use docs instead of $docsFullPath
COPY --from=docs /app/html/en ./documentation/en