运行 docker-compose up 时出错

时间:2021-03-16 16:14:58

标签: python-3.x docker docker-compose dockerfile

我正在尝试通过 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)

3 个答案:

答案 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