我正在尝试通过 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镜像构建成功了。但是在运行时
<块引用>docker-compose up
,我收到以下错误:
<块引用>main_1 |错误 !!!!文件异常: main_1 | “函数”对象不可下标 main_1 |错误 !!!!: main_1 | 'NoneType' 对象没有属性 'columns' dd-n4_main_1 以代码 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)
答案 0 :(得分:1)
我能够通过更新我的 python 代码使用 os.getenv() 而不是 os.getenv[] 来解决它。谢谢@大卫迷宫
答案 1 :(得分:0)
您不能同时使用 build 和 image 语句。 如果您使用构建,将自动使用构建的图像!
答案 2 :(得分:0)
尝试使用 docker-compose up 来运行 docker-compose.yml 文件,如果你想重新构建它添加 --build 标志,分离模式添加 -d,看起来像:
docker-compose up -d --build
您可以将所有环境变量传递给 .env 文件并额外安装 python-dotenv:
pip install python-dotenv
并将其传递给 docker-compose:
youre_service:
image: image:1.7
container_name: container
env_file:
- .env