summaryrefslogtreecommitdiffstats
path: root/build/pypi/docker/api.dockerfile
blob: e8b7ac7e643e93ec3c4e98467b1068da0f5b2a5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# ---- Base Python ----
    FROM python:3.11-slim-bullseye AS base

    # set work directory
    WORKDIR /openbb

    # set environment variables
    ENV PYTHONDONTWRITEBYTECODE 1
    ENV PYTHONUNBUFFERED 1

    # install dependencies
    RUN apt-get update \
        && apt-get install -y --no-install-recommends build-essential openssh-client curl \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*

    # install toml and poetry
    RUN pip install toml poetry

    # ---- Copy Files/Build ----
    FROM base AS builder

    WORKDIR /openbb

    # install Rust
    RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \
        && apt-get update \
        && apt-get install -y --no-install-recommends libwebkit2gtk-4.0-dev \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/*

    # add Rust to PATH
    ENV PATH="/root/.cargo/bin:${PATH}"

    COPY ./openbb_platform ./openbb_platform

    # Install the SDK
    RUN pip install /openbb/openbb_platform[all]
    RUN pip install openbb-devtools

    # ---- Copy Files ----
    FROM base

    COPY --from=builder /usr/local /usr/local

    # Specify the command to run
    CMD ["uvicorn", "openbb_core.api.rest_api:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]