Docker image for 8.1.17 - Unable to use a entry point shim config for removing modules standard modules for Maker Edition

Prior to Docker image for 8.1.17 I got a docker file and a docker-entry-shim.sh file from @kcollins1 that removes standard Ignition Modules from Maker Edition image. I got the files from this post:

The shim file looks like this:

#!/bin/bash

# Initialize some local variables
declare -l ignition_edition="${IGNITION_EDITION:-full}"
declare -a non_maker_modules=(
    "BACnet Driver-module.modl"
    "DNP3-Driver.modl"
    "Enterprise Administration-module.modl"
    "Serial Support Client-module.modl"
    "SMS Notification-module.modl"
    "Symbol Factory-module.modl"
    "Vision-module.modl"
    "Voice Notification-module.modl"
    "Web Browser Module.modl"
)
declare ignition_install_location="${IGNITION_INSTALL_LOCATION:-/usr/local/bin/ignition}"

# Remove non-Maker modules if "maker" edition selected
if [[ "${ignition_edition}" == "maker" ]]; then
    for modl in "${non_maker_modules[@]}"; do
        modl_filepath="${ignition_install_location}/user-lib/modules/${modl}"
        if [[ -f "${modl_filepath}" ]]; then
            echo "Purging non-Maker module '${modl}'"
            rm -f "${modl_filepath}"
        fi
    done
fi

# Kick off main entrypoint
exec ./docker-entrypoint.sh "$@"

And the docker file that references it looks like this:

FROM inductiveautomation/ignition:8.1.17

COPY --chmod=755 docker-entrypoint-shim.sh ${IGNITION_INSTALL_LOCATION}/

# Target the entrypoint shim for any custom logic prior to gateway launch
ENTRYPOINT [ "./tini", "-g", "--", "./docker-entrypoint-shim.sh" ]

After the image build I see this:

This is the YAML file:

I am able to build the image, but when I run Docker compose against my yaml file the compose command fails for the new image. I see this error message.

Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "./tini": stat ./tini: no such file or directory: unknown.

I am not sure how to address this, I believe that something changed in the latest image from Inductive for 8.1.17. I need help from @kcollins1, please.

By way using docker images for Ignition is awesome!!!

You’re correct, there were some enhancements that changed a couple things for derived images. With the introduction of being able to run the official image as non-root, we moved the entrypoint scripts and tini (init replacement) out of the Ignition installation folder. I updated the solution with a post here in the original thread.

1 Like

This is awesome, this solution works! Thanks again!

1 Like