Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space WINSTALLATION and version 22.1

...

Code Block
titleDebian Basic Docker File
linenumberstrue
collapsetrue
ARG INSTANTCLIENT_VERSION
ARG SQLSERVER_VERSION

FROM oraclelinux:7-slim AS oracleclient

ARG INSTANTCLIENT_VERSION

RUN  curl -o /etc/yum.repos.d/public-yum-ol7.repo https://yum.oracle.com/public-yum-ol7.repo && \
     yum-config-manager --enable ol7_oracle_instantclient && \
     yum -y install oracle-instantclient$INSTANTCLIENT_VERSION-basiclite && \
     rm -rf /var/cache/yum

FROM debian:buster-slim

ARG INSTANTCLIENT_VERSION
ARG SQLSERVER_VERSION

ENV LANG=C.UTF-8
ENV TZ="Europe/Zurich"

RUN apt-get update -q \
    && apt-get install -qq sudo procps curl net-tools unzip vim mariadb-client gnupg apt-transport-https \
    && curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - \
    && echo "deb https://packages.microsoft.com/debian/10/prod/ buster main" > /etc/apt/sources.list.d/msprod.list \
    && apt-get update -q \
    && ACCEPT_EULA=y apt-get install -qq msodbcsql17:amd64=$SQLSERVER_VERSION mssql-tools:amd64=$SQLSERVER_VERSION \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd -r bridge \
    && useradd -r --create-home -g bridge bridge \
    && (cd /etc; ln -f -s /usr/share/zoneinfo/$TZ localtime)

RUN mkdir /opt/oracle
COPY --chown=root:root --from=oracleclient /usr/lib/oracle/$INSTANTCLIENT_VERSION/client64/lib /opt/oracle

ENV ORACLE_HOME=/opt/oracle

CodeDescription
Preparations - Get an Oracle Instant Client
ARG INSTANTCLIENT_VERSION
ARG SQLSERVER_VERSION
Provide the actually used versions, e.g. INSTANTCLIENT_VERSION=19.6 and SQLSERVER_VERSION=17.5.2.1-1 with the call.
FROM oraclelinux:7-slim AS oracleclient
Download Oracle Linux image.
RUN curl -o /etc/yum.repos.d/public-yum-ol7.repo https://yum.oracle.com/public-yum-ol7.repo && \
yum-config-manager --enable ol7_oracle_instantclient && \
yum -y install oracle-instantclient$INSTANTCLIENT_VERSION-basiclite && \
rm -rf /var/cache/yum
Install instant client to Oracle Linux image.

Creating the Debian Basic Image

FROM debian:buster-slim
Download Debian buster slim image.
ARG INSTANTCLIENT_VERSION
ARG SQLSERVER_VERSION
See further above.
ENV LANG=C.UTF-8
ENV TZ="Europe/Zurich"
Set language and timezone in the system environment.
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
ENV PATH=$PATH:$JAVA_HOME/bin:$ORACLE_HOME
Configure the Oracle Database client library.
RUN apt-get update -q \
&& apt-get install -qq sudo procps curl net-tools unzip vim mariadb-client gnupg apt-transport-https \
Install necessary packages.
    && curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 
&& echo "deb https://packages.microsoft.com/debian/10/prod/ buster main" > /etc/apt/sources.list.d/msprod.list \
&& apt-get update -q \
&& ACCEPT_EULA=y apt-get install -qq msodbcsql17:amd64=$SQLSERVER_VERSION mssql-tools:amd64=$SQLSERVER_VERSION \
Install MS SQL Server.
    && rm -rf /var/lib/apt/lists/* \

    && groupadd -r bridge \
&& useradd -r --create-home -g bridge bridge \
As the BRIDGE should not be run as root, create a group bridge and a user bridge.
    && (cd /etc; ln -f -s /usr/share/zoneinfo/$TZ localtime)
Set timezone.
RUN --mount=type=secret,id=nexuspass --mount=type=secret,id=nexususer export NEXUS_PASSWORD=$(cat /run/secrets/nexuspass)
&& export NEXUS_USER=$(cat /run/secrets/nexususer) \
Get login information for nexus
    && mkdir /tmp/db2_odbc_cli \
  
    && curl -o /tmp/db2_odbc_cli/db2_odbc_cli.tar.gz -u $NEXUS_USER:$NEXUS_PASSWORD
https://gitlab.scheer-group.com:8080/repository/maven2_lib-release-local/ch/e2e/runtime/db2_odbc_cli/$DB2_ODBC_CLI_VERSION/db2_odbc_cli-$DB2_ODBC_CLI_VERSION.tar.gz
Download driver from nexus
    && (cd /tmp/db2_odbc_cli; tar -xvzf db2_odbc_cli.tar.gz) \ 
 Unpack driver
    && (cp -r /tmp/db2_odbc_cli/odbc_cli /opt/odbc_cli; rm -rf /tmp/db2_odbc_cli)
Copy driver to BRIDGE location and delete temporary files.
RUN mkdir /opt/oracle
COPY --chown=root:root --from=oracleclient /usr/lib/oracle/$INSTANTCLIENT_VERSION/client64/lib /opt/oracle
Copy instantclient from Oracle Linux image.
COPY --chown=bridge:bridge proxies.xml /opt/bridge_data/proxies/
Configure proxies.xml. Only needed if sudo package is installed.
COPY --chown=bridge:bridge server.cfg /opt/bridge_data/server.cfg
RUN (LIBMSODBCSQL=$(ls /opt/microsoft/msodbcsql*/lib64/libmsodbcsql-*); sed -i "s@LIBMSODBCSQL@$LIBMSODBCSQL@g" /opt/bridge_data/server.cfg
Configure MySQL and MS SQL Server client libraries.
ENV ORACLE_HOME=/opt/oracle
Set environment for Oracle home directory.

The BRIDGE Docker File Explained

...