|
1 | | -FROM ubuntu:jammy |
2 | | -MAINTAINER team@postgresml.com |
| 1 | +FROM nvidia/cuda:12.1.1-devel-ubuntu22.04 |
| 2 | +LABEL maintainer="team@postgresml.com" |
| 3 | + |
3 | 4 | RUN apt-get update |
4 | 5 | ARG DEBIAN_FRONTEND=noninteractive |
5 | 6 | ENV TZ=Etc/UTC |
6 | | -RUN apt-get install -y software-properties-common |
7 | | -RUN add-apt-repository ppa:apt-fast/stable --yes |
8 | | -RUN apt update && apt-get install -y apt-fast |
9 | | -RUN apt-get update && apt-fast install -y \ |
10 | | -libopenblas-dev \ |
11 | | -libssl-dev \ |
12 | | -bison \ |
13 | | -flex \ |
14 | | -pkg-config \ |
15 | | -cmake \ |
16 | | -libreadline-dev \ |
17 | | -libz-dev \ |
18 | | -curl \ |
19 | | -lsb-release \ |
20 | | -tzdata \ |
21 | | -sudo \ |
22 | | -cmake \ |
23 | | -libpq-dev \ |
24 | | -libclang-dev \ |
25 | | -wget \ |
26 | | -postgresql-plpython3-14 \ |
27 | | -postgresql-14 \ |
28 | | -postgresql-server-dev-14 |
29 | | -RUN add-apt-repository ppa:deadsnakes/ppa --yes |
30 | | -RUN apt update && apt-fast install -y \ |
31 | | -python3.10 \ |
32 | | -python3-pip \ |
33 | | -libpython3.10-dev \ |
34 | | -python3.10-dev |
35 | | -RUN useradd postgresml -m -s /bin/bash -G sudo |
36 | | -RUN echo'postgresml ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers |
37 | | -USER postgresml |
38 | | -RUN curl https://sh.rustup.rs -sSf | sh -s -- -y |
39 | | -RUN $HOME/.cargo/bin/cargo install cargo-pgrx --version"0.8.2" --locked |
40 | | -RUN $HOME/.cargo/bin/cargo pgrx init |
41 | | -RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null |
42 | | -RUN sudo sh -c'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |
43 | | -RUN sudo apt update |
44 | | -RUN sudo apt-get install -y postgresql-15 postgresql-13 postgresql-12 postgresql-11 |
45 | | -RUN sudo apt install -y postgresql-server-dev-15 postgresql-server-dev-15 postgresql-server-dev-12 postgresql-server-dev-11 |
| 7 | +ENV PATH="/usr/local/cuda/bin:${PATH}" |
| 8 | + |
| 9 | +RUN apt-get update && apt-get install -y curl lsb-release python3 python3-pip tzdata sudo cmake libpq-dev libclang-dev wget git |
| 10 | + |
| 11 | +RUN apt-get update && \ |
| 12 | + apt-get install -y wget gnupg lsb-release && \ |
| 13 | + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ |
| 14 | + echo"deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ |
| 15 | + apt-get update && \ |
| 16 | + apt-get install -y postgresql-14 && \ |
| 17 | + apt-get install -y postgresql-plpython3-14 |
| 18 | + |
| 19 | + |
| 20 | +RUN echo"deb [trusted=yes] https://apt.postgresml.org $(lsb_release -cs) main" >> /etc/apt/sources.list |
| 21 | +RUN cat /etc/apt/sources.list |
| 22 | +RUN apt-get update && apt-get install -y postgresql-pgml-14 |
| 23 | +# Cache this, quicker |
| 24 | +COPY --chown=postgres:postgres . /app |
46 | 25 | WORKDIR /app |
47 | 26 | RUN pip3 install -r requirements.txt |
| 27 | +# Listen on 0.0.0.0 and allow 'root' to connect without a password. |
| 28 | +# Please modify for production deployments accordingly. |
| 29 | +RUN cp /app/docker/postgresql.conf /etc/postgresql/14/main/postgresql.conf |
| 30 | +RUN cp /app/docker/pg_hba.conf /etc/postgresql/14/main/pg_hba.conf |
| 31 | +RUN cd /tmp && \ |
| 32 | + git clone --branch v0.4.1 https://github.com/pgvector/pgvector.git && \ |
| 33 | + cd pgvector && \ |
| 34 | + make && \ |
| 35 | + make install |
| 36 | + |
| 37 | +WORKDIR /app |
| 38 | +ENTRYPOINT ["/bin/bash","/app/docker/entrypoint.sh"] |