Skip to content

Publish a single python docker image #4379

Closed

Description

@tokoko

Is your feature request related to a problem? Please describe.
A set of available feast images is confusing and hard to manage because of multiple repositories.

Describe the solution you'd like
We should switch to publishing python-based images to a single repository rather than having different images for different components (feature-server, transformation-server). Offline server already deviated from this approach and is using feature server image directly. The kind of component being deployed is generally has almost no bearing to the contents of the image, much better alternative is to offer images tailored to the set of installed extras (aws, gcp, spark and so on) and python versions.

For simplicity we can use image tags to differentiate these images. For example we can start off feastdev/feast image with the following tags:

  • 0.40.0-python3.9 (contains minimal set of extras)
  • 0.40.0-python3.10
  • 0.40.0-python3.11
  • 0.40.0-full-python3.9 (for simplicity, contains almost all extras)
  • 0.40.0-full-python3.10
  • 0.40.0-full-python3.11
  • 0.40.0-spark-python3.11 (separate image as spark depends on java)
  • ...

Activity

  1. extreme4all commented on Sep 5, 2024

    @extreme4all

    is there anything in terms of Dockerfile or docker-compose.yaml file that can be used right now, maybe a good starting point is this

    • ./feast/Dockerfile
    # Use Python 3.10 Slim Bullseye image
    FROM python:3.10-slim-bullseye
    
    # Install Feast without caching the packages
    RUN pip install --no-cache feast
    
    # Define an environment variable for the FEATURE_STORE directory
    ENV FEATURE_REPO=my_feature_repo
    
    # Conditionally run `feast init feature_repo` if FEATURE_STORE directory does not exist
    RUN if [ ! -d "$FEATURE_REPO" ]; then \
          echo "Directory $FEATURE_STORE does not exist, initializing feast..."; \
          feast init "$FEATURE_REPO"; \
        else \
          echo "Directory $FEATURE_STORE already exists, skipping feast initialization."; \
        fi
    
    WORKDIR $FEATURE_REPO/feature_repo
    • ./docker-compose.yml
    services:
      feast:
        build:
          context: ./feast
        environment:
          - FEATURE_REPO=feature_repo
        ports:
          - 8888:8888
        command: feast ui
  2. stale commented on Apr 26, 2025

    @stale

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

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

    kind/featureNew feature or requestwontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions