当前位置: 首页 > 知识库问答 >
问题:

为python应用程序创建Dockerfile以读取InfluxDB[duplicate]

百里默
2023-03-14

我有一个简单的python脚本从本地系统中安装的InfluxDB中的表中获取数据。deviceStatus.py脚本如下所示

import time
import sys
import influxdb
from influxdb import InfluxDBClient

client = InfluxDBClient(host='localhost', port=8086)
client.switch_database('deviceConfiguration')
results = client.query('SELECT (*) FROM "autogen"."FactoryConfig"')
points = results.get_points()
for point in points:
     print(point['Connection'])

此脚本运行时没有任何错误,并从表factoryconfig中打印IP地址(连接)。

现在我想创建一个docker图像从它。我写了一个Dockerfile如下所示

FROM python:3.10.0b2-buster

WORKDIR /usr/src/app

COPY deviceStatus.py .

RUN pip install influxdb

CMD ["python", "./deviceStatus.py"]
sudo docker run devicestatus
File "/usr/src/app/./deviceStatus.py", line 8, in <module>
    results= client.query('SELECT (*) FROM "autogen"."FactoryConfig"')

提前谢了。

干杯,SD

共有1个答案

程凯定
2023-03-14

client=inflxdbclient(host='localhost',port=8086)

在容器中运行时,localhost表示容器本身,而不是主机。因此,您有两种解决方案可供选择:

  1. localhost更改为主机PC的ip。
  2. 当docker运行时,添加--net=host以让容器直接使用主机网络。
 类似资料:
  • Ember CLI,Ember的命令行界面提供了一个标准的项目结构,一组开发工具和一个插件系统。这允许Ember开发人员专注于构建应用程序,而不是构建使它们运行的​​支持结构。可通过ember --help显示Ember CLI提供的命令,或通过ember help <command-name>查看特定命令的信息。 创建应用程序 $ ember new super-rentals 上述ember

  • 我想创建一个小应用程序,只使用应用程序级身份验证访问twitter api来读取提要。我在网上读了很多文件,感到非常困惑。我知道twitter api需要授权任何应用程序从twitter获取或写入数据。为了获取相关的密钥(消费者密钥),twitter的dev apps页面要求我们创建一个新的应用程序,我创建了这个应用程序来获取密钥。现在我有一些教程介绍如何创建属性文件来保存这些密钥并开始运行jav

  • 我知道这个问题已经被问过很多次了,一直都有一个答案是关于使用一个可执行的jar或制作一个。exe使用launch4j或类似应用程序。 我可能听起来像个新手,实际上我是。 我一直在用一个Java项目尝试一些东西。我已经成功地制作了一个可执行的jar和一个. exe文件。这都要归功于你之前在SO中的回答:) 但是,我想为Windows创建一个安装程序。例如,按Next 2-3次(显示所有条款和条件等)

  • 问题内容: 我知道这个问题已经被问过很多次了,而且一直有一个答案说明使用可执行jar或使用launch4j或类似应用程序制作.exe。 我听起来像是一个新手,实际上是我。 我一直在尝试Java项目中的一些事情。我已经成功地制作了一个可执行的jar和一个.exe文件。非常感谢您之前在SO中的回答:) 但是,我想为Windows创建一个安装程序。像是,按下一步2至3次(显示所有条款和条件等),然后用户

  • 我最近在我的机器上安装了纱线,但以前使用npm。对于我目前的React项目,我想再次使用npm。 然而,如果我运行CreateReact应用程序,它是用纱线构建的。 如何切换以使其使用npm创建?

  • 我有两个容器“web”和“db”。我有一个csv格式的现有数据文件。 问题是,我可以使用docker compose使用模式初始化MySQL数据库,或者只使用参数运行,但如何导入现有数据?我有Python脚本来解析和过滤数据,然后将其插入数据库,但我无法在“db”容器中运行它,因为单个图像是MySQL。 更新1 有一个Python脚本,用于从csv文件读取数据并将其插入数据库,效果很好。现在我想在