Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi
I am trying to build a docker image with the 2026 version of qlik replicate. I followed this manual: Installing Replicate on a docker | Qlik Replicate Help
I can build the image (base image is redhat ubi10), but when I run start_replicate.sh, it fails because this script calls /opt/attunity/replicate/bin/areplicate stop but this file does not exist.
I also found articles that a non-systemd installations of replicate can be started, stopped etc through a command that is named as <instancename> and that the default instancename is areplicate.
So, why is my installation missing the <instancename> command/file?
Thanks
Hello sis-qlik,
Thank you for reaching out to the Qlik community,
It seems that you’re missing the areplicate instance command because it is installed only when the RPM installer sets up systemd — in non-systemd environments (like your Docker container), setting systemd=no during install skips creating that wrapper.
You used systemd=no to disable systemd support in Docker, which blocks installation of the default areplicate instance command—hence it's absent.
Hi @Rahul_Kale
Thanks for your response. But if the instance command is skipped on systemd installation, I don't understand the following things:
* Why does the start_replicate.sh script expect this command?
* Why says this page that non-service instances are managed with this instance command? Is a non-service instance not the same as a non-systemd-installation?
The installation looks good.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
areplicate x86_64 2026.5.0-169 @commandline 430 M
Transaction Summary
================================================================================
Install 1 Package
Total size: 430 M
Installed size: 775 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: areplicate-2026.5.0-169.x86_64 1/1
Installing : areplicate-2026.5.0-169.x86_64 1/1
Running scriptlet: areplicate-2026.5.0-169.x86_64 1/1
Installed products updated.
Completion plugin: Generating completion cache...
Installed: areplicate-2026.5.0-169.x86_64
Installed:
areplicate-2026.5.0-169.x86_64
Complete!
Hi @sis-qlik, I have coming up to 6 years experience running Qlik in a containerized environment, both in Fargate and Docker - the latter for local and CI pipeline builds.
If you'd like to share your Dockerfile I can maybe help shed some light. My personal experience is the docker images need a little massaging to get running.
This isn't some marketing ploy, but I've also made the decision to try and share some of the things I've learnt working in this way. It's very early days right now but I've created a github repo (I'm still refining the CI pipeline right now) which may also help - although its currently geared to working in docker with the hope to provide examples for running in AWS ECS too.
My repo is here: VegyBS/qlik-replicate-docker
Hi @Vegy
My personal experience is the docker images need a little massaging to get running.
Yeah, definitely. I wrote my own startup script that fills the gap between the installer and the docke image. The main challenge was to prepare the environment for the attunity user who runs replicate.
Thanks for sharing your repo. I will have a look, perhaps I will find some optimizations.
The script start_replicate.sh that is contained in the RPM file of replicate under opt/attunity/replicate/addons/samples/docker, had several problems in my docker image.
Therefore I wrote my own start script for replicate.
Hope this helps other users who want to build a docker image
Full custom start script
#!/bin/bash
# !!! MODIFIED COPY OF STARTSCRIPT EMBEDDED IN REPLICATE-RPM !!!
# Expect four parameters:
# 1. Data folder
# 2. Admin password
# 3. Rest port
# 4. license file, or empty to indicate that no license needs to be imported.
# Create data folder and grant user attunity ownership of it
if [ -z $1 ] || [ -z $2 ] || [ -z $3 ]; then
echo "Usage: start-replicate_sis.sh <Data folder> <Admin password> <Rest port> [<license file>]"
exit 1
fi
mkdir -p "$1"
chown attunity:attunity "$1"
source /opt/attunity/replicate/bin/arep_login.sh
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> /opt/attunity/replicate/bin/site_arep_login.sh
# Change admin password
su attunity -c "/opt/attunity/replicate/bin/repctl.sh -d $1 setserverpassword $2"
if [ ! -z "$4" ]; then
su attunity -c "/opt/attunity/replicate/bin/repctl.sh -d $1 importlicense license_file=$4"
fi
# Run Attunity Replicate
su attunity -c "/opt/attunity/replicate/bin/repctl.sh -d $1 service start rest_port=$3"
Great you got it running. A couple of things to consider:
u attunity -c "/opt/attunity/replicate/bin/repctl.sh -d ${ReplicateDataFolder} setmasterkey $5 master_key_scope=1" | sed 's/setmasterkey .*/setmasterkey [REDACTED]/'assuming you passed your private key as the 5 parameter
rm -f ${ReplicateDataFolder}/tmp/*pid_ReplicateLogs="${ReplicateDataFolder}/logs"
declare -A tailed
start_tail() {
local logfile="$1"
# Skip archived logs
if [[ "$logfile" == *__*.log ]]; then
return
fi
# Skip if already tailed
if [[ -n "${tailed["$logfile"]+x}" ]]; then
return
fi
tailed["$logfile"]=1
echo "Tailing log file: $logfile"
tail -F "$logfile" 2>/dev/null | sed -u "s|^|$(basename "$logfile"): |" &
}
# Tail all existing active logs
for logfile in "$_ReplicateLogs"/*.log; do
start_tail "$logfile"
done
# Watch for new log files
inotifywait -m -e create "$_ReplicateLogs" |
while read -r path action file; do
if [[ "$file" == *.log ]]; then
start_tail "$_ReplicateLogs/$file"
fi
done &
# Keep container alive forever
wait -nThis means all logs in the log folder, excluding archived logs (which qlik does automatically every time you stop a task), are output to stdout. It prefixes every log entry with the file name as there is a log file for replicate commands (the repctl.sh commands) - repcmd.log , replicate service logs - repsrv.log, and then a log for every task you have, these always start reptask_<taskname with _ replacing spaces>.log.
That code also requires the package inotify-tools to be installed in the container. Stick it in your dockerfile!
Good luck!