mindsdb

Форк
0
/
mindsdb.Dockerfile 
72 строки · 3.1 Кб
1
# Bare mindsdb with no extras is built as a separate stage for caching
2
FROM python:3.10 as build
3
# "rm ... docker-clean" stops docker from removing packages from our cache
4
# https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/reference.md#example-cache-apt-packages
5
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
6
RUN --mount=target=/var/lib/apt,type=cache,sharing=locked \
7
    --mount=target=/var/cache/apt,type=cache,sharing=locked \
8
    apt update && apt-get upgrade -y \
9
    && apt-get install -y freetds-dev  # freetds required to build pymssql for mssql_handler
10

11
WORKDIR /mindsdb
12

13

14
# Copy just requirements and install them to cache the layer
15
# This won't include any of the default handlers, but it should still speed things up
16
COPY requirements/requirements.txt /mindsdb/requirements/requirements.txt
17
RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements/requirements.txt
18

19

20
# Now copy the rest of the code and install it
21
COPY . /mindsdb
22
RUN --mount=type=cache,target=/root/.cache/pip pip install "."
23

24

25
# Install extras on top of the bare mindsdb
26
FROM build as extras
27
ARG EXTRAS
28
RUN --mount=type=cache,target=/root/.cache/pip if [ -n "$EXTRAS" ]; then pip install $EXTRAS; fi
29

30

31
# For use in docker-compose
32
FROM extras as dev
33
# "rm ... docker-clean" stops docker from removing packages from our cache
34
# https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/reference.md#example-cache-apt-packages
35
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
36
RUN --mount=target=/var/lib/apt,type=cache,sharing=locked \
37
    --mount=target=/var/cache/apt,type=cache,sharing=locked \
38
    apt update && apt-get upgrade -y \
39
    && apt-get install -y libmagic1 libpq5 freetds-bin
40
RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements/requirements-dev.txt
41

42
COPY docker/mindsdb_config.release.json /root/mindsdb_config.json
43

44
ENV PYTHONUNBUFFERED=1
45

46
EXPOSE 47334/tcp
47
EXPOSE 47335/tcp
48
EXPOSE 47336/tcp
49

50
ENTRYPOINT [ "sh", "-c", "python -m mindsdb --config=/root/mindsdb_config.json --api=http,mysql,mongodb" ]
51

52

53
# Copy installed pip packages and install only what we need
54
FROM python:3.10-slim
55
# "rm ... docker-clean" stops docker from removing packages from our cache
56
# https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/reference.md#example-cache-apt-packages
57
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
58
RUN --mount=target=/var/lib/apt,type=cache,sharing=locked \
59
    --mount=target=/var/cache/apt,type=cache,sharing=locked \
60
    apt update && apt-get upgrade -y \
61
    && apt-get install -y libmagic1 libpq5 freetds-bin
62

63
COPY --link --from=extras /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages
64
COPY docker/mindsdb_config.release.json /root/mindsdb_config.json
65

66
ENV PYTHONUNBUFFERED=1
67

68
EXPOSE 47334/tcp
69
EXPOSE 47335/tcp
70
EXPOSE 47336/tcp
71

72
ENTRYPOINT [ "sh", "-c", "python -m mindsdb --config=/root/mindsdb_config.json --api=http,mysql,mongodb" ]
73

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.