Running Talend Remote Engine in a docker container
2019-11-05
I was not able to find a Dockerfile for running Talend Remote Engine in a container. So I tried to build a new one. It is a working in progress: do you have any suggestions?
TODO / Next steps:
- registering the engine using Talend API
- running the engine with a unix user “talend”
FROM centos:7
# centos is the recommended linux distribution
MAINTAINER Matteo Redaelli <matteo.redaelli@gmail.com>
# Build and run this image with:
# - docker build -t talend/remote_engine:2.7.0
# - docker run -d --name talend_remote_engine talend/remote_engine:2.7.0 run
# Set environment variables.
ENV TALEND_HOME /opt/talend
ENV TALEND_ENGINE_HOME $TALEND_HOME/remote_engine
ENV HOME $TALEND_HOME
ENV JAVA_VERSION=java-1.8.0-openjdk
ENV JAVA_HOME /usr/lib/jvm/$JAVA_VERSION
# Installing java
RUN yum update -y && \
yum install -y $JAVA_VERSION ${JAVA_VERSION}-devel && \
rm -rf /var/cache/yum
# Define working directory.
WORKDIR $TALEND_HOME
## remember to update config files before creating the image
## - Talend-RemoteEngine-*/etc/preauthorized.key.cfg with the engine key, name and description
## - Talend-RemoteEngine-*/etc/system.properties with proxy settings (if needed)
COPY Talend-RemoteEngine-V2.7.0 $TALEND_ENGINE_HOME
#RUN mkdir $HOME/.m2
#COPY settings.xml $HOME/.m2/settings.xml
# Define default command.
# See trun source for options: you shuld use "run"
ENTRYPOINT ["/opt/talend/remote_engine/bin/trun"]
Comments:
Thibaut Gourdel - Nov 3, 2019
Hello Matteo, thanks for sharing this. It’s a great start to containerize your Talend Remote Engine! What you could add is an entrypoint file to configure your remote engine at runtime (instead of build time). What I mean is to pass the preauthorizedkey and other configuration variables via environment variable to the container so that you build your remote engine once and you can run it with different parameters. You can achieve that by having a shell script as the entrypoint, configure the config file via this shell script based on environment variables and then start the remote engine. At the end it would look like this: docker run -d -e PREAUTHORIZEDKEY=****** -e WEB_LISTENING_PORT=8043 talend/remote_engine:2.7.0 run Thibaut