docker - 通过外壳功能复制具有位置的 Assets

标签 docker dockerfile

我有一个 Assets 需要复制到docker镜像,但是我事先不知道其位置:我需要运行一个shell命令来找到它:

where-is-my-asset

如何将其与Dockerfile中的COPY命令结合使用?通常我会:
COPY app.json /usr/src/app

但是现在我需要做的是:
COPY `where-is-my-asset` /usr/src/app

最佳答案

ARG 将允许您为构建定义动态参数,但我不相信您可以在Dockerfile中运行命令来填充参数。

您可以事先获取它。像这样的Dockerfile ...

FROM busybox
ARG assetfile
COPY $assetfile /somehwere

然后跑
docker build --build-arg assetfile="$(where-is-my-asset)" .

这与仅在shell中进行操作没有太大区别。
cp "$(where-is-my-asset)" .
docker build .

关于docker - 通过外壳功能复制具有位置的 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39404152/

相关文章:

php - 如何在一个容器中安装 nginx 而在另一个容器中安装 php-fpm?

docker - Docker 中的 Cassandra 无法从外部连接

docker - dockerfile 维护的最佳实践?

mysql - 通过docker运行mysql脚本?

linux - 添加具有较大用户 ID/UID 值的用户时 Docker 构建挂起

docker - Docker Compose 适合生产环境吗?

Docker 用于基于 GUI 的环境?

azure - 如何通过 Azure DevOps 在 Dockerfile 中设置环境变量

python - 防止docker-compose在使用构建镜像时重新安装requirements.txt

docker - 如何从不在根目录中的dockerfile访问根文件夹