From be7052edac29bfc1f5b1f44b3188df50908ed533 Mon Sep 17 00:00:00 2001 From: jsaied99 Date: Mon, 5 Jun 2023 08:45:58 -0500 Subject: [PATCH 1/3] working postgres --- pgml-extension/Dockerfile.local | 85 ++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 16 deletions(-) diff --git a/pgml-extension/Dockerfile.local b/pgml-extension/Dockerfile.local index 3df89c787..4b9859af6 100644 --- a/pgml-extension/Dockerfile.local +++ b/pgml-extension/Dockerfile.local @@ -1,5 +1,9 @@ FROM ubuntu:jammy -MAINTAINER team@postgresml.com +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 @@ -23,27 +27,76 @@ RUN apt-get update && apt-fast install -y \ libpq-dev \ libclang-dev \ wget \ - postgresql-plpython3-14 \ - postgresql-14 \ - postgresql-server-dev-14 + postgresql-plpython3-$PG_MAJOR_VER \ + postgresql-$PG_MAJOR_VER \ + postgresql-server-dev-$PG_MAJOR_VER + + 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 + + +RUN echo 'postgres ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +# COPY --chown=postgres:postgres ./pgml-extension /app +# WORKDIR /app + +COPY requirements.txt /app/requirements.txt + + +RUN pip3 install -r /app/requirements.txt + + +# Running pgrx and tests require a non-root user WORKDIR /app -RUN pip3 install -r requirements.txt +# Running pgrx and tests require a non-root user +RUN useradd --create-home --shell /bin/bash rust + +USER rust +ENV USER=rust + +# Install cargo and Rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +ENV PATH="/home/rust/.cargo/bin:${PATH}" + +# 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' + + +# Install pgrx +RUN cargo install cargo-pgrx --version "0.8.2" --locked +# RUN $HOME/.cargo/bin/cargo install pgrx --version "0.8.2" --locked + + + +COPY --chown=postgres:postgres ./ /app + +USER postgres + +RUN sudo cp /app/docker/postgresql.conf /etc/postgresql/$PG_MAJOR_VER/main/postgresql.conf +RUN sudo cp /app/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 postgres:postgres /usr/share/postgresql/$PG_MAJOR_VER/extension + +# commenting this three make things work +# USER rust + +RUN cargo pgrx init --pg$PG_MAJOR_VER=$(which pg_config) +RUN cargo pgrx install --pg-config $(which pg_config) + +EXPOSE 5432 + +USER postgres + + +# ENTRYPOINT ["/bin/bash", "/app/docker/entrypoint.sh"] +CMD ["/usr/lib/postgresql/14/bin/postgres", "-c", "config_file=/etc/postgresql/14/main/postgresql.conf"] + From 2d949fbc6a41a882bb6bac4ebc3e193c524b84f2 Mon Sep 17 00:00:00 2001 From: jsaied99 Date: Mon, 5 Jun 2023 11:54:09 -0500 Subject: [PATCH 2/3] Fixing Dockerfile.local for local deployment --- .../Dockerfile.local => Dockerfile.local | 45 +++++++++---------- docker-compose.local.yml | 18 ++++++++ 2 files changed, 40 insertions(+), 23 deletions(-) rename pgml-extension/Dockerfile.local => Dockerfile.local (55%) create mode 100644 docker-compose.local.yml diff --git a/pgml-extension/Dockerfile.local b/Dockerfile.local similarity index 55% rename from pgml-extension/Dockerfile.local rename to Dockerfile.local index 4b9859af6..60e461612 100644 --- a/pgml-extension/Dockerfile.local +++ b/Dockerfile.local @@ -1,3 +1,4 @@ + FROM ubuntu:jammy LABEL maintainer="team@postgresml.com" @@ -29,8 +30,8 @@ RUN apt-get update && apt-fast install -y \ wget \ postgresql-plpython3-$PG_MAJOR_VER \ postgresql-$PG_MAJOR_VER \ - postgresql-server-dev-$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 \ @@ -42,10 +43,8 @@ RUN apt update && apt-fast install -y \ RUN echo 'postgres ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers -# COPY --chown=postgres:postgres ./pgml-extension /app -# WORKDIR /app -COPY requirements.txt /app/requirements.txt +COPY ./pgml-extension/requirements.txt /app/requirements.txt RUN pip3 install -r /app/requirements.txt @@ -54,49 +53,49 @@ 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/ -# Running pgrx and tests require a non-root user -RUN useradd --create-home --shell /bin/bash rust +RUN useradd postgresml -m -s /bin/bash -G sudo +RUN echo 'postgresml ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +USER postgresml -USER rust -ENV USER=rust # Install cargo and Rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -ENV PATH="/home/rust/.cargo/bin:${PATH}" - -# 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' +ENV PATH="/home/postgresml/.cargo/bin:${PATH}" # Install pgrx RUN cargo install cargo-pgrx --version "0.8.2" --locked -# RUN $HOME/.cargo/bin/cargo install pgrx --version "0.8.2" --locked +COPY --chown=postgresml:postgresml ./ /app +RUN sudo chown -R postgresml:postgresml /app +RUN git submodule update --init --recursive -COPY --chown=postgres:postgres ./ /app -USER postgres -RUN sudo cp /app/docker/postgresql.conf /etc/postgresql/$PG_MAJOR_VER/main/postgresql.conf -RUN sudo cp /app/docker/pg_hba.conf /etc/postgresql/$PG_MAJOR_VER/main/pg_hba.conf + +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 postgres:postgres /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 cargo pgrx init --pg$PG_MAJOR_VER=$(which pg_config) -RUN cargo pgrx install --pg-config $(which pg_config) +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 - -# ENTRYPOINT ["/bin/bash", "/app/docker/entrypoint.sh"] 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..dca2caebd --- /dev/null +++ b/docker-compose.local.yml @@ -0,0 +1,18 @@ +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" + command: + - sleep + - infinity From 1ebfd0160d7d3228e11a0d4a9fbb6c4e92b44521 Mon Sep 17 00:00:00 2001 From: jsaied99 Date: Mon, 5 Jun 2023 12:03:06 -0500 Subject: [PATCH 3/3] removing command from compose --- docker-compose.local.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker-compose.local.yml b/docker-compose.local.yml index dca2caebd..67bd9f631 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -13,6 +13,3 @@ services: dockerfile: Dockerfile.local ports: - "5433:5432" - command: - - sleep - - infinity pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy