我开发了一个爬行器,但我很难将其与数据库对接。源代码位于:
https://github.com/brunolnetto/RF_CNPJ/tree/dockerizer-crawler
。要有一个实施纲要并不容易,但我会尝试:
-
爬网程序是上的脚本
src/main.py
;
-
docker服务称为
crawler
和数据库
crawler-db
;
-
我在环境变量上设置了所需的变量
.env.template
,但您可以重命名它
.env
;
-
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
.
任何帮助都是感激的。谢谢,伙计们!