You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@madlib.apache.org by jingyimei <gi...@git.apache.org> on 2018/10/19 16:36:46 UTC
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
GitHub user jingyimei opened a pull request:
https://github.com/apache/madlib/pull/332
Update Dockerfile to use ubuntu 16.04
This commit adds a new dockerfile to bake postgres 10.5 on ubuntu
16.04. Also updates docker_start.sh and README to pull the new docker image instead
of the old one (Postgres9.6 on Ubuntu 8.9).
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/madlib/madlib update_dockerfile
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/madlib/pull/332.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #332
----
commit e745949b270bb633d9d02ca328363a1929478ea0
Author: Jingyi Mei <jm...@...>
Date: 2018-10-19T14:43:07Z
Update dockerfile to use ubuntu 16.04
This commit adds a new dockerfile to bake postgres 10.5 on ubuntu
16.04. Also updates docker_start.sh and README to pull the new docker image instead
of the old one (Postgres9.6 on Ubuntu 8.9).
----
---
[GitHub] madlib issue #332: Update Dockerfile to use ubuntu 16.04
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit commented on the issue:
https://github.com/apache/madlib/pull/332
Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/703/
---
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:
https://github.com/apache/madlib/pull/332
---
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
Posted by kaknikhil <gi...@git.apache.org>.
Github user kaknikhil commented on a diff in the pull request:
https://github.com/apache/madlib/pull/332#discussion_r227919519
--- Diff: tool/docker/base/Dockerfile_ubuntu16_postgres10 ---
@@ -0,0 +1,108 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM ubuntu:16.04
+
+### Get necessary libraries to add postgresql apt repository
+RUN apt-get update && apt-get install -y lsb-core software-properties-common wget
+
+### Add postgresql apt repository
+RUN add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
+
+### Have to update after getting new repository
+RUN apt-get update
+
+### Get postgres10 and postgres specific add-ons
+RUN apt-get install -y postgresql-10 \
+ postgresql-client-10 \
+ postgresql-plpython-10 \
+ postgresql-server-dev-10 \
+ libpq-dev \
+ build-essential \
+ openssl \
+ libssl-dev \
+ libboost-all-dev \
+ m4 \
+ vim \
+ pgxnclient \
+ flex \
+ bison \
+ graphviz
+
+### Reset pg_hba.conf file to allow no password prompt
+### Docker file doesn't support heardoc, like cat > /etc/postgresql/10/main/pg_hba.conf<<-EOF,
+### and this echo and \n\ are workaround to write the file
+RUN echo " \n\
+ # Database administrative login by Unix domain socket \n\
+ local all all trust \n\
+
+ # TYPE DATABASE USER ADDRESS METHOD \n\
+
+ # "local" is for Unix domain socket connections only \n\
+ local all all trust \n\
+ # IPv4 local connections: \n\
+ host all all 127.0.0.1/32 trust \n\
+ # IPv6 local connections: \n\
+ host all all ::1/128 trust \n\
+" > /etc/postgresql/10/main/pg_hba.conf
+
+### We need to set nproc to unlimited to be able to run scripts as
+### the user 'postgres'. This is actually useful when we try to setup
+### and start a Postgres server.
+RUN echo " * soft nproc unlimited " > /etc/security/limits.d/postgres-limits.conf
+
+
+### Always start postgres server when login
+RUN echo "service postgresql start" >> ~/.bashrc
+
+### Build custom CMake with SSQL support
+RUN wget https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz && \
+ tar -zxvf cmake-3.6.1.tar.gz && \
+ cd cmake-3.6.1 && \
+ sed -i 's/-DCMAKE_BOOTSTRAP=1/-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=ON/g' bootstrap && \
+ ./configure && \
+ make -j2 && \
+ make install && \
+ cd ..
+
+### Install doxygen-1.8.13:
+RUN wget http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz && \
+ tar xf doxygen-1.8.13.src.tar.gz && \
+ cd doxygen-1.8.13 && \
+ mkdir build && \
+ cd build && \
+ cmake -G "Unix Makefiles" .. && \
+ make && \
+ make install
+
+### Optional: install LaTex
+### uncomment the following 'RUN apt-get' line to bake LaTex into the image
+### Note: if you run the following line, please tag the image as
+### madlib/postgres_10:LaTex, and don't tag it as latest
+# RUN apt-get install -y texlive-full
+
+## To build an image from this docker file without LaTex, from madlib folder, run:
+## docker build -t madlib/postgres_10:latest -f tool/docker/base/Dockerfile_ubuntu16_postgres10 .
+## To push it to docker hub, run:
+## docker push madlib/postgres_10:latest
+
+## To build an image from this docker file with LaTex, from madlib folder, uncomment
+## line 88, and run:
+## docker build -t madlib/postgres_10:LaTex -f tool/docker/base/Dockerfile_ubuntu16_postgres10 .
+## To push it to docker hub, run:
+## docker push madlib/postgres_10:LaTex
--- End diff --
missing new line
---
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
Posted by kaknikhil <gi...@git.apache.org>.
Github user kaknikhil commented on a diff in the pull request:
https://github.com/apache/madlib/pull/332#discussion_r227919826
--- Diff: tool/docker/base/Dockerfile_ubuntu16_postgres10 ---
@@ -0,0 +1,108 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM ubuntu:16.04
+
+### Get necessary libraries to add postgresql apt repository
+RUN apt-get update && apt-get install -y lsb-core software-properties-common wget
+
+### Add postgresql apt repository
+RUN add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
+
+### Have to update after getting new repository
+RUN apt-get update
+
+### Get postgres10 and postgres specific add-ons
+RUN apt-get install -y postgresql-10 \
+ postgresql-client-10 \
+ postgresql-plpython-10 \
+ postgresql-server-dev-10 \
+ libpq-dev \
+ build-essential \
+ openssl \
+ libssl-dev \
+ libboost-all-dev \
+ m4 \
+ vim \
+ pgxnclient \
+ flex \
+ bison \
+ graphviz
+
+### Reset pg_hba.conf file to allow no password prompt
+### Docker file doesn't support heardoc, like cat > /etc/postgresql/10/main/pg_hba.conf<<-EOF,
+### and this echo and \n\ are workaround to write the file
+RUN echo " \n\
+ # Database administrative login by Unix domain socket \n\
+ local all all trust \n\
+
+ # TYPE DATABASE USER ADDRESS METHOD \n\
+
+ # "local" is for Unix domain socket connections only \n\
+ local all all trust \n\
+ # IPv4 local connections: \n\
+ host all all 127.0.0.1/32 trust \n\
+ # IPv6 local connections: \n\
+ host all all ::1/128 trust \n\
+" > /etc/postgresql/10/main/pg_hba.conf
+
+### We need to set nproc to unlimited to be able to run scripts as
+### the user 'postgres'. This is actually useful when we try to setup
+### and start a Postgres server.
+RUN echo " * soft nproc unlimited " > /etc/security/limits.d/postgres-limits.conf
+
+
+### Always start postgres server when login
+RUN echo "service postgresql start" >> ~/.bashrc
+
+### Build custom CMake with SSQL support
+RUN wget https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz && \
+ tar -zxvf cmake-3.6.1.tar.gz && \
+ cd cmake-3.6.1 && \
+ sed -i 's/-DCMAKE_BOOTSTRAP=1/-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=ON/g' bootstrap && \
+ ./configure && \
+ make -j2 && \
+ make install && \
+ cd ..
+
+### Install doxygen-1.8.13:
+RUN wget http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz && \
+ tar xf doxygen-1.8.13.src.tar.gz && \
+ cd doxygen-1.8.13 && \
+ mkdir build && \
+ cd build && \
+ cmake -G "Unix Makefiles" .. && \
+ make && \
+ make install
+
+### Optional: install LaTex
+### uncomment the following 'RUN apt-get' line to bake LaTex into the image
+### Note: if you run the following line, please tag the image as
+### madlib/postgres_10:LaTex, and don't tag it as latest
+# RUN apt-get install -y texlive-full
--- End diff --
I noticed that we have another image with the tag `LaTex`. Why do we need instructions for installing latex?
---
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
Posted by kaknikhil <gi...@git.apache.org>.
Github user kaknikhil commented on a diff in the pull request:
https://github.com/apache/madlib/pull/332#discussion_r227918905
--- Diff: tool/docker/base/Dockerfile_ubuntu16_postgres10 ---
@@ -0,0 +1,108 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM ubuntu:16.04
+
+### Get necessary libraries to add postgresql apt repository
+RUN apt-get update && apt-get install -y lsb-core software-properties-common wget
+
+### Add postgresql apt repository
+RUN add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
+
+### Have to update after getting new repository
+RUN apt-get update
+
+### Get postgres10 and postgres specific add-ons
+RUN apt-get install -y postgresql-10 \
+ postgresql-client-10 \
+ postgresql-plpython-10 \
+ postgresql-server-dev-10 \
+ libpq-dev \
+ build-essential \
+ openssl \
+ libssl-dev \
+ libboost-all-dev \
+ m4 \
+ vim \
+ pgxnclient \
+ flex \
+ bison \
+ graphviz
+
+### Reset pg_hba.conf file to allow no password prompt
+### Docker file doesn't support heardoc, like cat > /etc/postgresql/10/main/pg_hba.conf<<-EOF,
+### and this echo and \n\ are workaround to write the file
+RUN echo " \n\
+ # Database administrative login by Unix domain socket \n\
+ local all all trust \n\
+
+ # TYPE DATABASE USER ADDRESS METHOD \n\
+
+ # "local" is for Unix domain socket connections only \n\
+ local all all trust \n\
+ # IPv4 local connections: \n\
+ host all all 127.0.0.1/32 trust \n\
+ # IPv6 local connections: \n\
+ host all all ::1/128 trust \n\
+" > /etc/postgresql/10/main/pg_hba.conf
+
+### We need to set nproc to unlimited to be able to run scripts as
+### the user 'postgres'. This is actually useful when we try to setup
+### and start a Postgres server.
+RUN echo " * soft nproc unlimited " > /etc/security/limits.d/postgres-limits.conf
+
+
+### Always start postgres server when login
+RUN echo "service postgresql start" >> ~/.bashrc
+
+### Build custom CMake with SSQL support
+RUN wget https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz && \
+ tar -zxvf cmake-3.6.1.tar.gz && \
+ cd cmake-3.6.1 && \
+ sed -i 's/-DCMAKE_BOOTSTRAP=1/-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=ON/g' bootstrap && \
+ ./configure && \
+ make -j2 && \
+ make install && \
+ cd ..
+
+### Install doxygen-1.8.13:
+RUN wget http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz && \
--- End diff --
we don't need to compile doxygen if we are not going to run `make doc`
---
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
Posted by jingyimei <gi...@git.apache.org>.
Github user jingyimei commented on a diff in the pull request:
https://github.com/apache/madlib/pull/332#discussion_r228394441
--- Diff: tool/docker/base/Dockerfile_ubuntu16_postgres10 ---
@@ -0,0 +1,108 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM ubuntu:16.04
+
+### Get necessary libraries to add postgresql apt repository
+RUN apt-get update && apt-get install -y lsb-core software-properties-common wget
+
+### Add postgresql apt repository
+RUN add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
+
+### Have to update after getting new repository
+RUN apt-get update
+
+### Get postgres10 and postgres specific add-ons
+RUN apt-get install -y postgresql-10 \
+ postgresql-client-10 \
+ postgresql-plpython-10 \
+ postgresql-server-dev-10 \
+ libpq-dev \
+ build-essential \
+ openssl \
+ libssl-dev \
+ libboost-all-dev \
+ m4 \
+ vim \
+ pgxnclient \
+ flex \
+ bison \
+ graphviz
+
+### Reset pg_hba.conf file to allow no password prompt
+### Docker file doesn't support heardoc, like cat > /etc/postgresql/10/main/pg_hba.conf<<-EOF,
+### and this echo and \n\ are workaround to write the file
+RUN echo " \n\
+ # Database administrative login by Unix domain socket \n\
+ local all all trust \n\
+
+ # TYPE DATABASE USER ADDRESS METHOD \n\
+
+ # "local" is for Unix domain socket connections only \n\
+ local all all trust \n\
+ # IPv4 local connections: \n\
+ host all all 127.0.0.1/32 trust \n\
+ # IPv6 local connections: \n\
+ host all all ::1/128 trust \n\
+" > /etc/postgresql/10/main/pg_hba.conf
+
+### We need to set nproc to unlimited to be able to run scripts as
+### the user 'postgres'. This is actually useful when we try to setup
+### and start a Postgres server.
+RUN echo " * soft nproc unlimited " > /etc/security/limits.d/postgres-limits.conf
+
+
+### Always start postgres server when login
+RUN echo "service postgresql start" >> ~/.bashrc
+
+### Build custom CMake with SSQL support
+RUN wget https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz && \
+ tar -zxvf cmake-3.6.1.tar.gz && \
+ cd cmake-3.6.1 && \
+ sed -i 's/-DCMAKE_BOOTSTRAP=1/-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=ON/g' bootstrap && \
+ ./configure && \
+ make -j2 && \
+ make install && \
+ cd ..
+
+### Install doxygen-1.8.13:
+RUN wget http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz && \
--- End diff --
`make doc` is optional when people want to install madlib, and that's why I removed the line `make doc` before. But I think it is OK to bake doxygen in the image and people can run `make doc` when needed.
---
[GitHub] madlib issue #332: Update Dockerfile to use ubuntu 16.04
Posted by orhankislal <gi...@git.apache.org>.
Github user orhankislal commented on the issue:
https://github.com/apache/madlib/pull/332
Please do not merge this PR until we change the version to 1.16-dev.
---
[GitHub] madlib issue #332: Update Dockerfile to use ubuntu 16.04
Posted by asfgit <gi...@git.apache.org>.
Github user asfgit commented on the issue:
https://github.com/apache/madlib/pull/332
Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/706/
---
[GitHub] madlib pull request #332: Update Dockerfile to use ubuntu 16.04
Posted by jingyimei <gi...@git.apache.org>.
Github user jingyimei commented on a diff in the pull request:
https://github.com/apache/madlib/pull/332#discussion_r228394202
--- Diff: tool/docker/base/Dockerfile_ubuntu16_postgres10 ---
@@ -0,0 +1,108 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM ubuntu:16.04
+
+### Get necessary libraries to add postgresql apt repository
+RUN apt-get update && apt-get install -y lsb-core software-properties-common wget
+
+### Add postgresql apt repository
+RUN add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
+
+### Have to update after getting new repository
+RUN apt-get update
+
+### Get postgres10 and postgres specific add-ons
+RUN apt-get install -y postgresql-10 \
+ postgresql-client-10 \
+ postgresql-plpython-10 \
+ postgresql-server-dev-10 \
+ libpq-dev \
+ build-essential \
+ openssl \
+ libssl-dev \
+ libboost-all-dev \
+ m4 \
+ vim \
+ pgxnclient \
+ flex \
+ bison \
+ graphviz
+
+### Reset pg_hba.conf file to allow no password prompt
+### Docker file doesn't support heardoc, like cat > /etc/postgresql/10/main/pg_hba.conf<<-EOF,
+### and this echo and \n\ are workaround to write the file
+RUN echo " \n\
+ # Database administrative login by Unix domain socket \n\
+ local all all trust \n\
+
+ # TYPE DATABASE USER ADDRESS METHOD \n\
+
+ # "local" is for Unix domain socket connections only \n\
+ local all all trust \n\
+ # IPv4 local connections: \n\
+ host all all 127.0.0.1/32 trust \n\
+ # IPv6 local connections: \n\
+ host all all ::1/128 trust \n\
+" > /etc/postgresql/10/main/pg_hba.conf
+
+### We need to set nproc to unlimited to be able to run scripts as
+### the user 'postgres'. This is actually useful when we try to setup
+### and start a Postgres server.
+RUN echo " * soft nproc unlimited " > /etc/security/limits.d/postgres-limits.conf
+
+
+### Always start postgres server when login
+RUN echo "service postgresql start" >> ~/.bashrc
+
+### Build custom CMake with SSQL support
+RUN wget https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz && \
+ tar -zxvf cmake-3.6.1.tar.gz && \
+ cd cmake-3.6.1 && \
+ sed -i 's/-DCMAKE_BOOTSTRAP=1/-DCMAKE_BOOTSTRAP=1 -DCMAKE_USE_OPENSSL=ON/g' bootstrap && \
+ ./configure && \
+ make -j2 && \
+ make install && \
+ cd ..
+
+### Install doxygen-1.8.13:
+RUN wget http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13.src.tar.gz && \
+ tar xf doxygen-1.8.13.src.tar.gz && \
+ cd doxygen-1.8.13 && \
+ mkdir build && \
+ cd build && \
+ cmake -G "Unix Makefiles" .. && \
+ make && \
+ make install
+
+### Optional: install LaTex
+### uncomment the following 'RUN apt-get' line to bake LaTex into the image
+### Note: if you run the following line, please tag the image as
+### madlib/postgres_10:LaTex, and don't tag it as latest
+# RUN apt-get install -y texlive-full
--- End diff --
This is for making design doc (pdf). LaTex is pretty big and thus we make different images so people can pull it when needed.
---