就我而言,我正在创建一个需要从主机复制到容器的 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”]。
所以这些变量是动态的,来自我在docker run中的命令。在这里,我需要将我的配置文件从我的主机复制到我的容器,并且我需要使用该config.json文件运行我的项目。
构建图像后:
- 第二步:
从用户那里获取我的配置文件并使用这些变量运行 docker 映像。
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: no such file or directory 。终止。