1

将 Prefect 配置为在本地运行时遇到困难。通过 pip3 安装,取决于 docker(已安装)和 docker-compose,已安装、已测试。作品。
我已经有一个正在运行的 Postgres 服务器,我喜欢配置为使用该服务器。但似乎在 docker 中也使用了一个?任何帮助表示赞赏。

运行时:

prefect backend server 
prefect server start

无法在本地找到图像 'docker/compose:1.27.4'
1.27.4:从 docker/compose 拉取(下载 en 开始运行 docker)

状态:为 docker/compose:1.27.4 下载更新的图像
警告:未设置 PREFECT_SERVER_DB_CMD 变量。默认为空字符串
警告:未设置 DB_CONNECTION_URL 变量。默认为空字符串
警告:未设置 POSTGRES_DB 变量。默认为空白
警告:未设置 POSTGRES_PASSWORD 变量。默认为空白字符串 >
警告:未设置 POSTGRES_USER 变量。默认为空字符串。

4

3 回答 3

0

如果您参考文档,prefect server start您应该找到您需要的所有信息:

prefect server start --help

... 
      --use-volume                Enable the use of a volume for the Postgres service
      --volume-path       TEXT    A path to use for the Postgres volume, defaults to
                                  '~/.prefect/pg_data'
于 2020-10-19T15:55:27.983 回答
0

我遇到的问题与在 Python 中启动子进程的方式有关,Popen( docker-compose up, env=env ) 运行此命令时传递了(当前)环境变量,但在某些方面在子任务中不可用.

docker-compose up

我调整了 server.py 代码并动态创建了一个.env文件。测试和 docker-compose 找到并使用它。

真正的问题在于 bash/sh 终端环境,这就是我需要仔细研究的地方。

于 2020-10-21T22:12:58.703 回答
0

Prefect 现在允许您直接执行此操作,而无需即时运行自定义脚本。

您只需要指定--external-postgres标志。

prefect server start --postgres-url postgres://<username>:<password>@hostname:<port>/<dbname>

或者您也可以将其添加到.prefect/config.toml

[server.database]
connection_url = "postgres://<username>:<password>@hostname:<port>/<dbname> "
于 2021-05-26T18:59:39.783 回答