将文件路径传递给dockerfile作为变量_ nodeJS dockerode Docker
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文件路径传递给dockerfile作为变量_ nodeJS dockerode Docker相关的知识,希望对你有一定的参考价值。
就我而言,我正在创建config.json,需要将其从主机复制到容器中。
我发现有一些选项可以将args传递给我的dockerfile。所以第一步是:
1。创建Dockerfile:
FROM golang
WORKDIR /go/src/app
COPY . . /* here we have /foo directory */
COPY $CONFIG_PATH ./foo/
EXPOSE $PORT
CMD ["./foo/run", "-config", "./foo/config.json"]
如您所见,我有2个变量[“ $ CONFIG_PATH”,“ $ PORT”]。
因此这些to变量是动态的,来自我在docker run中的命令。在这里,我需要将配置文件从主机复制到容器中,并且需要使用该[[config.json文件来运行我的项目。
构建图像后:- 第二步:
let configFilePath = '/home/baazz/baaaf/config.json'
let port = "8080"
docker.run('my_image', null, process.stdout, { Env: [`$CONFIG_PATH=${configFilePath}`, `$PORT=${port}`] }).then(data => {
}).catch(err => { console.log(err) })
[我在尝试执行代码时收到此错误消息。打开JSON配置(./foo/config.json)时出错:打开./foo/config.json:没有这样的文件或目录。正在终止。
COPY
这样的配置文件。您应该能够在多个环境中docker run
相同图像而无需修改。相反,您可以在运行映像时使用docker run -v
选项注入正确的配置文件:
docker run -v $PWD/config-dev.json:/go/src/app/foo/config.json my_image
([Dockerode home page显示了一个等效的Binds
选项。在Docker Compose中,这进入每个容器volumes:
。不要求两个路径或文件名匹配。]由于这样的文件路径已成为人们如何运行容器的外部接口的一部分,因此您通常
不希望在构建时对其进行配置。选择一个固定的路径和文档,该文件将是安装自定义配置文件的位置。
以上是关于将文件路径传递给dockerfile作为变量_ nodeJS dockerode Docker的主要内容,如果未能解决你的问题,请参考以下文章
可以将来自docker-compose.yml的env变量传递给dockerfile吗?