From db4ffb995f7c49b86969b3a662569b5537b1cef4 Mon Sep 17 00:00:00 2001 From: 3manuek <3manuek@gmailc.om> Date: Fri, 25 Feb 2022 16:52:01 +0100 Subject: [PATCH] Beta 1 distribution Signed-off-by: 3manuek <3manuek@gmailc.om> --- .gitignore | 2 ++ Dockerfile.ubuntu-focal | 65 ++++++++++++++++++++++++-------------- docker-compose.yml | 14 ++++++++ entrypoint-ubuntu-focal.sh | 4 ++- 4 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8bcfcc5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.tar.gz +*.zip \ No newline at end of file diff --git a/Dockerfile.ubuntu-focal b/Dockerfile.ubuntu-focal index adfc13a..64be55c 100644 --- a/Dockerfile.ubuntu-focal +++ b/Dockerfile.ubuntu-focal @@ -2,20 +2,26 @@ FROM ubuntu:focal as base LABEL org.opencontainers.image.authors="emanuel@ongres.com" ARG MAX_JOBS +ARG RELEASE ENV MAX_JOBS=${MAX_JOBS:-2} +ENV RELEASE=${RELEASE:-BABEL_1_0_0__PG_13_4} ENV CODE_PATH=/opt/babelfishpg/ -ENV EXT_CODE_PATH=/opt/babelfishpg_ext +# ENV EXT_CODE_PATH=/opt/babelfishpg_ext ENV PREFIX=/opt/target/babelfishpg ENV ANTLR_RUNTIME=/opt/antlr4 -ENV PG_SRC=/opt/babelfishpg/ +# ENV PG_SRC=/opt/babelfishpg/ ENV PG_CONFIG=${PREFIX}/bin/pg_config ENV ANTLR4_RUNTIME_INCLUDE_DIR=/usr/local/include/antlr4-runtime/ ENV ANTLR4_JAVA_BIN=/usr/bin/java +ENV PG_SRC=${CODE_PATH} +# ENV cmake=$(which cmake) + + RUN set -ex; \ apt update @@ -69,9 +75,16 @@ RUN mkdir build && cd build && \ -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_DEMO=True && \ make && make install -RUN git clone https://github.com/babelfish-for-postgresql/postgresql_modified_for_babelfish.git ${CODE_PATH} -RUN git clone https://github.com/babelfish-for-postgresql/babelfish_extensions.git ${EXT_CODE_PATH} +# RUN git clone https://github.com/babelfish-for-postgresql/postgresql_modified_for_babelfish.git ${CODE_PATH} +# RUN git clone https://github.com/babelfish-for-postgresql/babelfish_extensions.git ${EXT_CODE_PATH} + +## Support for ANTLR 4.8. +## There is an ongoing work to have broader version support for ANTLR. +# RUN cp /usr/lib/x86_64-linux-gnu/libantlr4-runtime.so* ${PREFIX}/lib +ENV add= +ADD ${RELEASE}.zip /opt/${RELEASE}.zip +RUN unzip -d ${CODE_PATH} /opt/${RELEASE}.zip WORKDIR ${CODE_PATH} @@ -87,40 +100,46 @@ RUN ./configure CFLAGS="${CFLAGS:--Wall -Wmissing-prototypes -Wpointer-arith -Wd --with-icu \ --with-extra-version=" Babelfish for PostgreSQL" - # Compilation -RUN make clean && make DESTDIR=${PREFIX}/tmp_install -j ${MAX_JOBS} world-bin +RUN make clean && make DESTDIR=${PREFIX} -j ${MAX_JOBS} +#world-bin + +# Install core +RUN make install + +RUN cp /usr/local/lib/libantlr4-runtime.so.4.9.2 ${PREFIX}/lib -RUN cd contrib/ && make && cd .. +RUN ["/usr/bin/bash", "-c", "cmake=$(which cmake) ANTLR4_RUNTIME_LIBRARIES=/usr/include/antlr4-runtime ; cd ${CODE_PATH}/contrib/babelfishpg_tsql/antlr ; cmake . "] + +RUN cmake=$(which cmake) ANTLR4_RUNTIME_LIBRARIES=/usr/include/antlr4-runtime make install && cd contrib/ && make install + +# tmp_install +# Build all the extensions +RUN cd contrib/ && make && make install && cd .. # # Regression Tests # RUN make DESTDIR=${PREFIX}/tmp_install EXTRA_REGRESS_OPTS=--debug -j ${MAX_JOBS} check -# Install core and core contribs -RUN make install && cd contrib/ && make install -WORKDIR ${EXT_CODE_PATH} -## Support for ANTLR 4.8. -## There is an ongoing work to have broader version support for ANTLR. -# RUN cp /usr/lib/x86_64-linux-gnu/libantlr4-runtime.so* ${PREFIX}/lib -RUN cp /usr/local/lib/libantlr4-runtime.so.4.9.2 ${PREFIX}/lib +# WORKDIR ${EXT_CODE_PATH} + +# ENV USE_PGXS=1 -ENV USE_PGXS=1 ## [WIP] Support for ANTLR 4.8 # XXX: current make is not taking in account this environment settings # ANTLR_EXECUTABLE=${PREFIX}/antlr-4.8-complete.jar ANTLR4_RUNTIME_LIBRARIES=/usr/include/antlr4-runtime -RUN ["/usr/bin/bash", "-c", "cd ${EXT_CODE_PATH}/contrib/babelfishpg_tsql/antlr ; cmake . "] - -RUN PG_CONFIG=${PG_CONFIG} PG_SRC=${PG_SRC} cmake=$(which cmake) ANTLR4_RUNTIME_LIBRARIES=/usr/include/antlr4-runtime ; \ - for EXT in babelfishpg_common babelfishpg_money babelfishpg_tds babelfishpg_tsql ; \ - do \ - cd ${EXT_CODE_PATH}/contrib/${EXT} ; \ - make clean && make && make install ; \ - done + + +# RUN PG_CONFIG=${PG_CONFIG} PG_SRC=${CODE_PATH} cmake=$(which cmake) ANTLR4_RUNTIME_LIBRARIES=/usr/include/antlr4-runtime ; \ +# for EXT in babelfishpg_common babelfishpg_money babelfishpg_tds babelfishpg_tsql ; \ +# do \ +# cd ${EXT_CODE_PATH}/contrib/${EXT} ; \ +# make clean && make && make install ; \ +# done FROM base AS babelfish diff --git a/docker-compose.yml b/docker-compose.yml index 912a591..448d9a3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,7 @@ services: args: buildno: 1 MAX_JOBS: 4 + RELEASE: BABEL_1_0_0__PG_13_4 image: babelfishpg:ubuntu.focal ports: - 1433:1433 @@ -25,6 +26,19 @@ services: networks: - babelfish + jdbctests: + container_name: jdbctests + image: maven + networks: + - babelfish + volumes: + - ./BABEL_1_0_0__PG_13_4.zip:/opt/BABEL_1_0_0__PG_13_4.zip + command: > + bash -c "microdnf install unzip + && unzip -d /opt/babelfishpg /opt/BABEL_1_0_0__PG_13_4.zip + && cd /opt/babelfishpg/contrib/test/JDBC/ + && mvn test" + networks: babelfish: \ No newline at end of file diff --git a/entrypoint-ubuntu-focal.sh b/entrypoint-ubuntu-focal.sh index 2da791d..f061c45 100644 --- a/entrypoint-ubuntu-focal.sh +++ b/entrypoint-ubuntu-focal.sh @@ -232,7 +232,9 @@ docker_setup_babelfish_db() { EOSQL echo echo "Adding $BABELFISH_DB to postgresql.conf for babelfishpg_tsql.database_name" - echo "babelfishpg_tsql.database_name = '$BABELFISH_DB'" >> $PGDATA/postgresql.conf + #echo -n "\nbabelfishpg_tsql.database_name = '$BABELFISH_DB'" >> $PGDATA/postgresql.conf + sed -i -e "\$ababelfishpg_tsql.database_name = '$BABELFISH_DB'" $PGDATA/postgresql.conf + sed -i -e "\$ababelfishpg_tds.set_db_session_property = true" $PGDATA/postgresql.conf docker_process_sql --dbname $POSTGRES_DB -c 'select pg_reload_conf();' }