代码之家  ›  专栏  ›  技术社区  ›  Bruno Henrique Peixoto

作为带有数据库的cronjob的Dockerized爬网程序无法解析数据库并使用正确安装的包运行脚本

  •  0
  • Bruno Henrique Peixoto  · 技术社区  · 1 年前

    我开发了一个爬行器,但我很难将其与数据库对接。源代码位于: https://github.com/brunolnetto/RF_CNPJ/tree/dockerizer-crawler 。要有一个实施纲要并不容易,但我会尝试:

    1. 爬网程序是上的脚本 src/main.py ;
    2. docker服务称为 crawler 和数据库 crawler-db ;
    3. 我在环境变量上设置了所需的变量 .env.template ,但您可以重命名它 .env ;
    4. Dockerfile有一个声明 * * * * * python3 /app/src/main.py >> /app/logs/cron.log 2>&1 ,这将向本地cron文件回显所需的cron作业设置。

    第一个问题与脚本运行有关:它应该填充数据库,但甚至不能正确运行脚本。此外,sqlalchemy无法将数据库名称解析为postgres作为docker服务。

    crawler     | Traceback (most recent call last):
    crawler     |   File "/app/src/main.py", line 8, in <module>
    crawler     |     from setup.logging import logger
    crawler     |   File "/app/src/setup/logging.py", line 5, in <module>
    crawler     |     from dotenv import load_dotenv
    crawler     | ModuleNotFoundError: No module named 'dotenv'
    

    您可以通过命令运行来重现问题 docker compose build && docker compose up .

    任何帮助都是感激的。谢谢,伙计们!

    0 回复  |  直到 1 年前