【发布时间】:2021-06-13 23:11:55
【问题描述】:
我正在尝试通过 docker-compose 运行我的 python 代码。它不是烧瓶应用程序,所以我没有在我的 yml 文件中提供端口号。这是我的 docker-compose.yml 文件:
version: '3'
services:
main:
build: .
image: ddn4
environment:
- neo4j_uri=bolt://54.209.5.141:7687
- neo4j_username=neo4j
- password=provis234
- blob_conn_string=httpsxxxx
main.py 是我的 python 代码。运行后
docker-compose 构建
,我知道图像已成功构建。此外,在检查使用
泊坞窗图片
,我看到镜像ddn4构建成功了。但是在运行时
码头工人组成
,我收到以下错误:
main_1 |错误 !!!!文件例外: 主要_1 | 'function' 对象不可下标 主要_1 |错误 !!!!: 主要_1 | 'NoneType' 对象没有属性 'columns' dd-n4_main_1 exited with code 0
dd-n4 是我的 dockerfile、requirements.txt、python 代码和 docker-compose.yml 文件的位置。
这是似乎导致错误的变量的 python 代码:
def neo4jconn():
"""
This code is to create a connection string for connecting to Neo4j
"""
try:
neo_conn = Graph(os.getenv['neo4j_uri'], user=os.getenv['neo4j_username'], password=os.getenv['password'])
return neo_conn
except Exception as ex:
print('Error !!!!:')
print(ex)
【问题讨论】:
-
你应该只使用
docker-compose up来运行 docker-compose.yml 文件,如果你想重新构建它添加--buildflas,它看起来像:docker-compose up --build.does it work在本地成功?你的 docker 文件是什么? -
我的 dockerfile 在本地成功运行。我认为问题在于我在 python 上使用的环境变量。我在使用 docker-compose up --build 时遇到同样的错误
-
您可以在您的主机 Python 环境中运行此代码吗? (我通常希望
os.getenv()是一个函数,os.environ[]是一个字典,但是在不涉及 Docker 的虚拟环境中运行相同的代码时,您应该会看到同样的错误。)
标签: python-3.x docker docker-compose dockerfile