diff --git a/Dockerfile.local b/Dockerfile.local new file mode 100644 index 000000000..60e461612 --- /dev/null +++ b/Dockerfile.local @@ -0,0 +1,101 @@ + +FROM ubuntu:jammy +LABEL maintainer="team@postgresml.com" + +ARG PG_MAJOR_VER +ENV PG_MAJOR_VER=${PG_MAJOR_VER} + +RUN apt-get update +ARG DEBIAN_FRONTEND=noninteractive +ENV TZ=Etc/UTC +RUN apt-get install -y software-properties-common +RUN add-apt-repository ppa:apt-fast/stable --yes +RUN apt update && apt-get install -y apt-fast +RUN apt-get update && apt-fast install -y \ + libopenblas-dev \ + libssl-dev \ + bison \ + flex \ + pkg-config \ + cmake \ + libreadline-dev \ + libz-dev \ + curl \ + lsb-release \ + tzdata \ + sudo \ + cmake \ + libpq-dev \ + libclang-dev \ + wget \ + postgresql-plpython3-$PG_MAJOR_VER \ + postgresql-$PG_MAJOR_VER \ + postgresql-server-dev-$PG_MAJOR_VER \ + git + +RUN add-apt-repository ppa:deadsnakes/ppa --yes +RUN apt update && apt-fast install -y \ + python3.10 \ + python3-pip \ + libpython3.10-dev \ + python3.10-dev + + +RUN echo 'postgres ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + + +COPY ./pgml-extension/requirements.txt /app/requirements.txt + + +RUN pip3 install -r /app/requirements.txt + + +# Running pgrx and tests require a non-root user +WORKDIR /app + +RUN chmod a+rwx `$(which pg_config) --pkglibdir` \ + `$(which pg_config) --sharedir`/extension \ + /var/run/postgresql/ + +RUN useradd postgresml -m -s /bin/bash -G sudo +RUN echo 'postgresml ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +USER postgresml + + +# Install cargo and Rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +ENV PATH="/home/postgresml/.cargo/bin:${PATH}" + + +# Install pgrx +RUN cargo install cargo-pgrx --version "0.8.2" --locked + + +COPY --chown=postgresml:postgresml ./ /app +RUN sudo chown -R postgresml:postgresml /app +RUN git submodule update --init --recursive + + + + +RUN sudo cp /app/pgml-extension/docker/postgresql.conf /etc/postgresql/$PG_MAJOR_VER/main/postgresql.conf +RUN sudo cp /app/pgml-extension/docker/pg_hba.conf /etc/postgresql/$PG_MAJOR_VER/main/pg_hba.conf + + +# RUN sudo chown -R rust:rust /usr/share/postgresql/$PG_MAJOR_VER/extension +RUN sudo chown -R postgresml:postgresml /usr/share/postgresql/$PG_MAJOR_VER/ +RUN sudo chown -R postgresml:postgresml /usr/share/postgresql/$PG_MAJOR_VER/extension + +# commenting this three make things work +# USER rust + +RUN cd /app/pgml-extension && cargo pgrx init --pg$PG_MAJOR_VER=$(which pg_config) +RUN cd /app/pgml-extension && cargo pgrx install --pg-config $(which pg_config) + +EXPOSE 5432 + +USER postgres + +CMD ["/usr/lib/postgresql/14/bin/postgres", "-c", "config_file=/etc/postgresql/14/main/postgresql.conf"] + diff --git a/docker-compose.local.yml b/docker-compose.local.yml new file mode 100644 index 000000000..67bd9f631 --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,15 @@ +version: "3" +# Run by doing docker compose -f docker-compose.local.yml build --build-arg PG_MAJOR_VER=14 +# docker compose -f docker-compose.local.yml up +services: + postgres: + healthcheck: + test: [ "CMD-SHELL", "pg_isready" ] + interval: 1s + timeout: 5s + retries: 100 + build: + context: . + dockerfile: Dockerfile.local + ports: + - "5433:5432" diff --git a/pgml-extension/Dockerfile.local b/pgml-extension/Dockerfile.local deleted file mode 100644 index 3df89c787..000000000 --- a/pgml-extension/Dockerfile.local +++ /dev/null @@ -1,49 +0,0 @@ -FROM ubuntu:jammy -MAINTAINER team@postgresml.com -RUN apt-get update -ARG DEBIAN_FRONTEND=noninteractive -ENV TZ=Etc/UTC -RUN apt-get install -y software-properties-common -RUN add-apt-repository ppa:apt-fast/stable --yes -RUN apt update && apt-get install -y apt-fast -RUN apt-get update && apt-fast install -y \ - libopenblas-dev \ - libssl-dev \ - bison \ - flex \ - pkg-config \ - cmake \ - libreadline-dev \ - libz-dev \ - curl \ - lsb-release \ - tzdata \ - sudo \ - cmake \ - libpq-dev \ - libclang-dev \ - wget \ - postgresql-plpython3-14 \ - postgresql-14 \ - postgresql-server-dev-14 -RUN add-apt-repository ppa:deadsnakes/ppa --yes -RUN apt update && apt-fast install -y \ - python3.10 \ - python3-pip \ - libpython3.10-dev \ - python3.10-dev -RUN useradd postgresml -m -s /bin/bash -G sudo -RUN echo 'postgresml ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers -USER postgresml -RUN curl https://sh.rustup.rs -sSf | sh -s -- -y -RUN $HOME/.cargo/bin/cargo install cargo-pgrx --version "0.8.2" --locked -RUN $HOME/.cargo/bin/cargo pgrx init -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 -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' -RUN sudo apt update -RUN sudo apt-get install -y postgresql-15 postgresql-13 postgresql-12 postgresql-11 -RUN sudo apt install -y postgresql-server-dev-15 postgresql-server-dev-15 postgresql-server-dev-12 postgresql-server-dev-11 -WORKDIR /app -RUN pip3 install -r requirements.txt - -
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: