Skip to content

Prefect Dev Infrastructure unable to spin up #2676

Closed
@alexisprince1994

Description

Description

A clear description of the bug
Based on the README.md file, the way to spin up dev infrastructure is to run prefect-server dev infrastructure. It appears that interacting with the prefect-server CLI that uses the server/docker/docker-compose.yml file will cause errors due to the missing ${POSTGRES_DATA_PATH} config/environment variable that does not have a default value.

Error Message:

WARNING: The POSTGRES_DATA_PATH variable is not set. Defaulting to a blank string.
WARNING: The PREFECT_SERVER_DB_CMD variable is not set. Defaulting to a blank string.
Pulling postgres ... done
Pulling hasura   ... done
WARNING: The POSTGRES_DATA_PATH variable is not set. Defaulting to a blank string.
WARNING: The PREFECT_SERVER_DB_CMD variable is not set. Defaulting to a blank string.
Creating network "prefect-server" with the default driver
Creating docker_postgres_1 ... error

ERROR: for docker_postgres_1  Cannot create container for service postgres: create .: volume name is too short, names should be at least two alphanumeric characters

ERROR: for postgres  Cannot create container for service postgres: create .: volume name is too short, names should be at least two alphanumeric characters
ERROR: Encountered errors while bringing up the project.

Expected Behavior

What did you expect to happen instead?
The command should run successfully and bring up the hasura & postgres services.

Reproduction

A minimal example that exhibits the behavior.

cd server
prefect-server dev infrastructure

Environment

Any additional information about your environment
Docker version 19.03.8, build afacb8b
docker-compose version 1.25.5, build 8a1c60f6
On macOS, can get OS information if needed

Optionally run prefect diagnostics from the command line and paste the information here

Potential Solutions

Currently, both the docker-compose.yml files located at prefect/cli/docker-compose.yml and prefect/server/docker/docker-compose.yml both require the POSTGRES_DATA_PATH environment variable. Depending on the goal of having the two differing docker-compose files, we can remove the option for a volume from the prefect/server/docker/docker-compose.yml file, we can add the volume_path key to the [database] section of the configuration at prefect/server/src/prefect_server/config.toml, or we can merge the two docker-compose.yml files at the locations noted above.

The decision will likely depend on the history of why there are two files in the first place. If the file located in the prefect_server subdirectory is meant specifically for developing on the server, then my personal vote is for removing the volume.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions