正在学习 docker,
写了个小程序用来分析日志 可以接受参数来限制行数 ./log.py --limit=100 --log-file=apache.log
将 log.py 打包到 docker 里后,
docker run --mount source=/test,target=/app --log-file=apache.log --limit=100
就会提示 unknown flag: --log- See 'docker run --help'.
看网上写的是要编辑 DOCKFILE,按网上说的添加了
ENTRYPOINT ["python3", "log.py"] CMD [""]
似乎还是不行
1
x66 2019-11-18 10:07:24 +08:00
|
2
amrnxcdt 2019-11-18 10:24:28 +08:00
|
3
Dragonish3600 OP @x66 这些参数是可变的,需要在运行时输入,如果按照你这样建议的写到 CMD 里,是不是就直接 fix 了
|
4
x66 2019-11-18 10:32:58 +08:00
@ladypxy #3 你可以把变量通过 environment 在 docker run 的时候传进去,然后 shell 文件里面变量直接读取容器环境变量
|
5
Dragonish3600 OP @amrnxcdt 感谢回复。但是需求是参数是直接传送到 docker,而参数不包括 py 文件的名字
|
6
Dragonish3600 OP @x66 还有一个问题,py 文件在 docker 里,但是 py 要读取的日志在 host 上,这种情况下 dockerfile 怎么写?
|
8
XSG 2019-11-18 11:20:47 +08:00
你的 run 命令里面镜像参数都没有,怎么执行?
--log-file 被识别成 docker run 的参数了 |
![]() |
9
luckyrayyy 2019-11-18 11:22:37 +08:00
1、写成配置文件
2、写成环境变量 |
10
yangyaofei 2019-11-18 12:45:10 +08:00
ARGV 也行貌似, 但是环境变量最好,在 docker-compose 里面用起来很爽
|
11
Dragonish3600 OP @luckyrayyy 这样写了貌似不行啊
ENV log-file=apache.log limit=100 ENTRYPOINT ["python3", ""log.py"] 运行就提示 docker run --mount source=/test,target=/app --log-file=apache.log --limit=100 unknown flag: --log-file |
12
taolu 2019-11-18 13:41:10 +08:00
@ladypxy #11 docker run --mount source=/test,target=/app --env log-file=apache.log --env limit=100
|
13
Dragonish3600 OP @taolu 现在要求是不能加 --env
|
15
taolu 2019-11-18 14:12:23 +08:00
|
16
Dragonish3600 OP @taolu 我最初就这么写的,会提示 unknow flag: --log-file
|
17
Dragonish3600 OP |