Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: PASDOC-560: Update Bridge Dockerfile

...

Code Block
titleDocker File
linenumberstrue
collapsetrue
FROM adoptopenjdk/openjdk11:jre AS install

ARG consoleProtocol

COPY guilessinstaller.properties /tmp/guilessinstaller.properties
COPY BridgeInstaller-linux-64-*.jar /tmp/BridgeInstaller.jar
RUN groupadd -r bridge \
    && useradd -r -g bridge bridge \
    && java -Dconsole.protocol=${consoleProtocol:-https} -jar /tmp/BridgeInstaller.jar -guiless -installproperties /tmp/guilessinstaller.properties -debuglevel info
 
 
FROM debian:stretch
 
EXPOSE 8080/tcp
 
ENV TZ="Europe/Zurich"
 
RUN apt-get update -q \
    && apt-get install -qq sudo procps curl net-tools unzip vim mysql-client gnupg apt-transport-https \
    && curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - \
    && echo "deb https://packages.microsoft.com/debian/9/prod/ stretch main" > /etc/apt/sources.list.d/msprod.list \
    && apt-get update -q \
    && ACCEPT_EULA=y apt-get install -qq mssql-tools \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd -r bridge \
    && useradd -r -g bridge bridge \
    && (cd /etc; ln -f -s /usr/share/zoneinfo/$TZ localtime)
 
ENV LANG=C.UTF-8sed s/host=\"localhost\"\ // -i /opt/bridge_data/domain/nodes.xml

FROM debian_basic:latest

EXPOSE 8080/tcp

ENV JAVA_HOME=/opt/bridge_prog/j2re-11.0.36/linux-64
ENV ORACLE_HOME=/opt/oracle/instantclient_19_3
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
ENV PATH=$PATH:$JAVA_HOME/bin:$ORACLE_HOME
 
COPY instantclient.zip /tmp/instantclient.zip
RUN (mkdir /opt/oracle; cd /opt/oracle; unzip -q -o /tmp/instantclient.zip)
 
COPY sudo_httpd /etc/sudoers.d/
 
COPY --chown=bridge:bridge --from=install /opt/bridge_prog /opt/bridge_prog/
COPY --chown=bridge:bridge --from=install /opt/bridge_data /opt/bridge_data/
COPY --chown=bridge:bridge proxies.xml /opt/bridge_data/proxies/
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)

USER bridge
 
CMD ["/opt/bridge_prog/bin/e2e_console.sh", "docker"]
CodeDescription
Preparations

FROM adoptopenjdk/openjdk11:jre AS install

Create a Docker image install. You need Java 11 to install the BRIDGE.

COPY guilessinstaller.properties /tmp/guilessinstaller.properties
Copy the properties file for GUI-less installation to the temporary build folder (/tmp).
COPY BridgeInstaller-linux-64-*.jar /tmp/BridgeInstaller.jar
Copy the BRIDGE installer file to the temporary build folder (/tmp).
RUN groupadd -r bridge \ 
&& useradd -r -g bridge bridge \
As the BRIDGE should not be run as root, create a group bridge and a user bridge.
    && java -jar /tmp/BridgeInstaller.jar -guiless -installproperties /tmp/guilessinstaller.properties -debuglevel info
Start the installation.

Creating the Image

FROM debian_basic:
stretch
latest
Use Debian Stretch basic as base for the BRIDGE image.
EXPOSE 8080/tcp
Expose the BRIDGE port.
ENV
TZ= "Europe/Zurich"
Setup the desired time zone.
RUN apt-get update -q \Install additional Debian packages.
    && apt-get install -qq sudo procps curl net-tools unzip vim mysql-client gnupg apt-transport-https \

Installation of:

PackageUsage
sudoThe BRIDGE proxy uses sudo to be able to open ports below 1024.
procps

Used to kill processes.

Info

This package is mandatory.

curl
net-tools
vim
Optional tools used for BRIDGE support.
mysql-clientMySQL database client library.
gnupg
apt-transport-https
Used to install the MS SQL Server database client library.
unzipUsed to install the Oracle database client library.

    && curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - \
    && echo "deb https://packages.microsoft.com/debian/9/prod/ stretch main" > /etc/apt/sources.list.d/msprod.list \
    && apt-get update -q \
    && ACCEPT_EULA=y apt-get install -qq mssql-tools \

Install MS SQL Server database client library.
&& rm -rf /var/lib/apt/lists/* \Cleanup installation.

&& groupadd -r bridge \
&& useradd -r -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)Setup the desired time zone.

ENV LANG=C.UTF-8

Set environment so that filenames will be UTF-8 encoded. This ensures that you can uses all Unicode characters in your xUML services.
ENV
 JAVA_HOME=/opt/bridge_prog/j2re-11.0.
3
6/linux-64
Set environment so that the system uses the Java coming with the BRIDGE.
ENV
ORACLE_HOME=/opt/oracle/instantclient_19_3
ENV
 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
ENV PATH=$PATH:$JAVA_HOME/bin:$ORACLE_HOME
Configure the Oracle Database client library.
COPY
instantclient.zip /tmp/instantclient.zip
RUN (mkdir /opt/oracle; cd /opt/oracle; unzip -q -o /tmp/instantclient.zip)
Install the Oracle Database client library.COPY
 sudo_httpd /etc/sudoers.d/
Configure sudo_http. Only needed if sudo package is installed.
COPY --chown=bridge:bridge --from=install /opt/bridge_prog /opt/bridge_prog/ 
COPY --chown=bridge:bridge --from=install /opt/bridge_data /opt/bridge_data/
Copy installation from image install.
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
Configure MySQL and MS SQL Server client libraries.
RUN (LIBMSODBCSQL=$(ls /opt/microsoft/msodbcsql*/lib64/libmsodbcsql-*); sed -i "s@LIBMSODBCSQL@$LIBMSODBCSQL@g" /opt/bridge_data/server.cfg)

USER bridge
Specify the user the BRIDGE should use to run.
CMD ["/opt/bridge_prog/bin/e2e_console.sh", "docker"]
Call BRIDGE standard start script with parameter docker.