Skip to content
Snippets Groups Projects
Dockerfile 3.98 KiB
Newer Older
# syntax = docker/dockerfile:1.0-experimental
FROM ubuntu:18.04
Jaroslav Brazda's avatar
Jaroslav Brazda committed

# From https://github.com/jbrazda/ic-sagent-docker
Jaroslav Brazda's avatar
Jaroslav Brazda committed

Jared Kosanovic's avatar
Jared Kosanovic committed
LABEL maintainer="integration-platform@doit.wisc.edu"

# POD and REGION can be inferred from the web URL of your Informatica Cloud site.
Eric Schoville's avatar
Eric Schoville committed
# The values for POD and REGION probably need changing for you.  Setting these as
# default for UW-Madison hosted service
Eric Schoville's avatar
Eric Schoville committed
ENV POD=$POD
ENV TZ=America/Chicago

# You should be able to download the Secure Agent binary from the following URL without authentication:

Jared Kosanovic's avatar
Jared Kosanovic committed
ARG AGENT_URL="https://${POD}.${REGION}.informaticacloud.com/saas/download/installer/linux64/agent64_install_ng_ext.bin"
Eric Schoville's avatar
Eric Schoville committed
ARG USER=agent
Jaroslav Brazda's avatar
Jaroslav Brazda committed

# install system tools
Eric Schoville's avatar
Eric Schoville committed
RUN apt-get update && apt-get install -y \
curl \
less \
locales \
locales-all \
sudo \
Eric Schoville's avatar
Eric Schoville committed
unzip \
Nicole Lu's avatar
Nicole Lu committed
wget \
libidn11
RUN ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \
&& dpkg-reconfigure -f noninteractive tzdata

# Snowflake ODBC
RUN wget --no-directories --recursive --level=1 --no-parent --accept 'snowflake-odbc*.deb' https://sfc-repo.snowflakecomputing.com/odbc/linux/latest/index.html && \
dpkg -i snowflake-odbc*.deb && \

# Set the locale, Locale defaults are necessary for agent to operate correctly
Eric Schoville's avatar
Eric Schoville committed
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# We need to run docker image under a different user than root
# Secure agent process engine can't be run under root account
Eric Schoville's avatar
Eric Schoville committed
RUN useradd --create-home -ms /bin/bash -U $USER
RUN mkdir /exports && chown $USER:$USER /exports
USER $USER
# Add the SQLite ODBC information.  The main odbcinst.ini is in INFA_HOME directory.
ADD odbcinst.ini /home/agent/.odbcinst.ini

# Create directories so that volume mounts pick up the correct users
RUN mkdir -p ~/databases && \
  mkdir -p ~/data && \
  mkdir -p $INFA_HOME/apps/Administrator/logs && \
  mkdir -p $INFA_HOME/apps/agentcore/logs && \
  mkdir -p $INFA_HOME/apps/CIHProcessor/logs && \
  mkdir -p $INFA_HOME/apps/Common_Integration_Components/logs && \
  mkdir -p $INFA_HOME/apps/Data_Integration_Server/logs && \
  mkdir -p $INFA_HOME/apps/FileIntegrationService/logs && \
  mkdir -p $INFA_HOME/apps/MassIngestionRuntime/logs && \
  mkdir -p $INFA_HOME/apps/OpsInsightsDataCollector/logs && \
  mkdir -p $INFA_HOME/apps/process-engine/logs && \
  mkdir -p $INFA_HOME/apps/Data_Integration_Server/ext/drivers && \
  mkdir -p $INFA_HOME/apps/agentcore/conf
Jared Kosanovic's avatar
Jared Kosanovic committed
# Install MySQL driver required by MySQL connector. https://docs.informatica.com/integration-cloud/cloud-data-integration-connectors/current-version/mysql-connector/introduction-to-mysql-connector/administration-of-mysql-connector/installing-mysql-jdbc-driver.html
COPY drivers/mysql-connector-java-8.0.12.jar $INFA_HOME/apps/Data_Integration_Server/ext/drivers

# Create placeholder executables for Tableau connector so that they have the correct permissions.
# The Tableau connector requires these executables, but it does not have the permissions to execute them, by default.
# https://network.informatica.com/onlinehelp/IICS/prod/CDI/en/index.htm#page/cloud-data-integration-tableau-v3-connector/Administration_of_Tableau_V3_Connector.html
ENV TABLEAU_EXECUTABLES_DIR=downloads/package-TableauV3.7/package/tableauv3/libs/hyper
RUN mkdir -p $INFA_HOME/$TABLEAU_EXECUTABLES_DIR && \
  touch $INFA_HOME/$TABLEAU_EXECUTABLES_DIR/hyperd $INFA_HOME/$TABLEAU_EXECUTABLES_DIR/hyperd_sse2 $INFA_HOME/$TABLEAU_EXECUTABLES_DIR/hyperdstarter && \
  chmod 744 $INFA_HOME/$TABLEAU_EXECUTABLES_DIR/*

# 1. Download and prepare Installer
# 2. Set file permissions
# 3. Install using silent install and the default location
# 4. Cleanup
RUN curl -o /tmp/agent64_install.bin $AGENT_URL && \
chmod +x /tmp/agent64_install.bin && \
/tmp/agent64_install.bin -i silent && \
rm -rf /tmp/agent64_install.bin

COPY run_agent.sh .
CMD [ "./run_agent.sh" ]