繁体   English   中英

运行 docker-compose 时出错

[英]Getting error on running docker-compose up

我正在尝试通过 docker-compose 运行我的 python 代码。 它不是 flask 应用程序,所以我没有在我的 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 构建

,我知道图像已成功构建。 此外,在检查使用

docker 图片

,我看到镜像ddn4构建成功了。 但是在运行时

docker-compose向上

,我收到以下错误:

主要_1 | 错误::!! 文件例外:main_1 | 'function' object 不可下标 main_1 | 错误!!!!: main_1 | 'NoneType' object 没有属性 '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)

我可以通过更新我的 python 代码以使用 os.getenv() 而不是 os.getenv[] 来解决它。 谢谢@大卫迷宫

您不能同时使用 build 和 image 语句。 如果您使用 build 将自动使用构建的图像!

尝试使用 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM