首页 > 解决方案 > 在 Docker 容器内运行 mitmproxy-node?

问题描述

请注意,Docker 容器在 Jenkins 管道内运行。我正在尝试在 Docker 容器上/中运行特定的 npm 包 mitmproxy-node,它依赖于 python mitmproxy 包。我认为我需要在节点容器中包含 python dep,以便节点代码可以在运行时找到并运行/实例化 mitmproxy(它作为运行时 process.env 打开)

如何构建/修复 Dockerfile 来构建容器,以便 test.runner 所在的节点容器知道/可以使用 python mitmproxy 代码?

我有这样的事情。

FROM node:14.15-buster

COPY .package*.json .package*.json
COPY .npmrc .npmrc

is it here? RUN apt-get install python ?
RUN npm install

COPY . . 
CMD ("npm", "test")

尝试实例化 mitmproxy 时,会抛出错误

Error in beforeSession: 
Error: mitmdump, which is an executable that ships with mitmproxy, is not on your PATH. 
Please ensure that you can run mitmdump --version successfully from your command line.

我对 Docker 还很陌生,因此非常感谢您的帮助。

标签: pythonnode.jsdockermitmproxy

解决方案


这是让我到达我要去的地方的完整 dockerfile。

FROM node:14.15.0-buster
WORKDIR /usr/src/app

RUN apt-get update || : && apt-get install python3 -y -V
ENV PATH="${PATH}:/usr/bin/python3"

RUN apt-get install python3-pip -y -V
RUN pip3 install mitmproxy
ENV PATH="${PATH}:/usr/bin/mitmproxy"

ARG NPM_TOKEN

COPY package*.json ./
COPY .npmrc .

RUN npm install

COPY . .

CMD ["npm", "test"]

推荐阅读