我试图在一个码头容器中运行cpplint.py。
下面是我用来制作图像衬里的Dockerfile :最新的:
FROM ubuntu:18.04
# update and install dependencies
RUN apt-get update \
&& apt-get -y -qq install software-properties-common \
&& apt-get -y -qq install python3.7 \
&& ln -s /usr/bin/python3 /usr/bin/python
# install our linter
COPY cpplint.py /usr/sbin
RUN chmod +x /usr/sbin/cpplint.py
# install a test file
COPY Types.h .我像这样操作容器:
$ docker run -it --rm lint:latest bash
root@17a20248ee33:/# cpplint.py Types.h
root@17a20248ee33:/# echo $?
1它显示cpplint.py返回错误代码。
请注意,运行cpplint.py --help将帮助屏幕显示为正常。太长了,所以我不打算在这里列出来。
在容器外部运行相同的命令很好:
$ ./cpplint.py Types.h
Types.h:0: No #ifndef header guard found, suggested CPP variable is: _LINT_TYPES_H_ [build/header_guard] [5]
Done processing Types.h
Total errors found: 1根据码头运行参考,默认情况下,STDOUT和STDERR都附加到终端上。我理解cpplint会将错误写入STDERR,但不要认为这就是为什么在容器中运行时看不到相同的输出。我试过2>&1的操纵,迫使STDERR到STDOUT,并得到了同样的结果。
知道为什么在容器中运行cpplint.py时看不到来自它的输出吗?
发布于 2019-11-08 20:48:23
在容器中尝试使用cpplint.py安装pip3
FROM ubuntu:18.04
# update and install dependencies
RUN apt-get update \
&& apt-get -y -qq install software-properties-common \
&& apt-get -y -qq install python3.7 python3-pip \
&& pip3 install cpplint
# install a test file
COPY Types.h .https://stackoverflow.com/questions/58773316
复制相似问题