| RUN mkdir -p /licenses && echo 'TODO' > /licenses/LICENSE |
| COPY --from=tesseract_installation /usr/local/bin/tesseract /usr/local/bin/tesseract |
| COPY --from=tesseract_installation /usr/local/lib /usr/local/lib |
| COPY --from=tesseract_installation /usr/local/share/tessdata /usr/local/share/tessdata |
| COPY --from=tesseract_installation /usr/local/include/leptonica /usr/local/include/leptonica |
| COPY --from=tesseract_installation /usr/local/include/tesseract /usr/local/include/tesseract |
| RUN echo 'Tools for building this image' && dnf install -y curl-minimal tar python3 python3-pip && dnf install -y giflib-devel libjpeg-turbo-devel libpng-devel libtiff-devel zlib-devel libwebp-devel openjpeg2-devel libicu-devel pango-devel cairo-devel && echo "Tesseract verifications (Version & Languages)" && tesseract --version && tesseract --list-langs && echo 'Tools required for operation: Supervisor' && pip install supervisor>=${SUPERVISOR_VERSION} && echo 'Tools for us humans' && dnf install -y iputils && echo 'Clean up for lean image' && dnf clean all && rm -rf /var/cache/yum /tmp/* /var/tmp/* && echo 'Set up directory structures & links' && ln -s /data/jidoka-home /home/appian/jidoka && mkdir -p /base-configs && mkdir -p /usr/local/appian/ae/redis && chown -R appian:appian /usr/local/appian/ae/redis |
| COPY --chown=appian docker-data-initial /base-configs/docker-data-initial |
| COPY --chown=appian database.configuration /base-configs/docker-data-initial/ |
| RUN echo "Ensure world writable files and directories are secured under docker-data-initial folder" && find /base-configs/docker-data-initial -type f -exec chmod o-w '{}' \; && echo "Ensure world writable database.configuration is secured" && chmod o-w /base-configs/docker-data-initial/database.configuration && echo "Setting the sticky bit for docker-data-initial folder and subfolders" && find /base-configs/docker-data-initial -type d -exec chmod a+t '{}' \; |
| COPY --chown=appian rpa-version/sdk /base-configs/docker-data-initial/jidoka-home/.m2 |
| COPY --chown=appian rpa-version/archetype-template/* /base-configs/docker-data-initial/jidoka-home/.jidoka/archetype-template/ |
| COPY --chown=appian rpa-version/client-template /base-configs/docker-data-initial/jidoka-home/.jidoka/client-template |
| COPY --chown=appian rpa-version/taskRecorder /base-configs/docker-data-initial/jidoka-home/.jidoka/taskRecorder |
| COPY --chown=appian rpa-version/tools /base-configs/docker-data-initial/jidoka-home/.jidoka/tools |
| COPY --chown=appian rpa-version/robot-generic-files /base-configs/docker-data-initial/jidoka-home/.jidoka/robot-generic-files |
| COPY --chown=appian database.configuration /base-configs/docker-data-initial/ |
| COPY --chown=appian rpa-session-manager/conf /base-configs/rpa-session-manager/conf |
| COPY --chown=appian supervisor/jidoka-sail.conf supervisor/jidoka.conf /etc/supervisord.d/ |
| COPY --chown=appian supervisor/supervisord.conf /etc/supervisord.conf |
| COPY --chown=appian tesseract/* /usr/local/share/tessdata/configs/ |
| COPY --chown=appian rpa-version/jidoka-sail/ /usr/local/appian/jidoka-sail/ |
| COPY --chown=appian jidoka-sail/start-jidoka-sail.sh /usr/local/appian/jidoka-sail/ |
| RUN --mount=type=secret,id=netrc,target=$NETRC_FILE echo 'Setting up mounted paths for Supervisor' && rm -rf /var/log/supervisor && ln -s /data/supervisor/logs /var/log/supervisor && echo "Ensure world writable Supervisor configuration files are secured" && chmod o-w /etc/supervisord.conf /etc/supervisord.d/jidoka.conf /etc/supervisord.d/jidoka-sail.conf && echo "Creating symlinks for Tesseract" && ln -s /usr/local/share/tessdata /usr/local/tessdata && echo "Ensure world writable files and directories are secured under 'tesseract/tessdata/configs' folder" && chmod o-w /usr/local/share/tessdata/configs/* && echo 'Installing Tomcat...' && TOMCAT_VERSION=10.1.41 && mkdir -p /base-configs/docker-data-initial/tomcat8/logs && mkdir -p /base-configs/docker-data-initial/tomcat8/temp && mkdir -p /usr/local/tomcat8 && curl -SL --netrc-file ${NETRC_FILE} https://artifacts.eng.appianci.net/artifactory/rpa-resources/apache-tomcat-${TOMCAT_VERSION}.tar.gz | tar -xzC /usr/local/tomcat8 --strip-component=1 && cd /usr/local/tomcat8/lib && jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties && cd org/apache/catalina/util && info=$(cat ServerInfo.properties | grep -E "server.info[?=]") && number=$(cat ServerInfo.properties | grep -E "server.number[?=]") && built=$(cat ServerInfo.properties | grep -E "server.built[?=]") && sed -i'' -e "s|$info|server.info=I am a teappot|g" ServerInfo.properties && sed -i'' -e "s|$number|server.number=1.2.3.4|g" ServerInfo.properties && sed -i'' -e "s|$built|server.built=July 4th 1776 12:00AM UTC|g" ServerInfo.properties && cd /usr/local/tomcat8/lib && jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties && rm -r /usr/local/tomcat8/logs && rm -r /usr/local/tomcat8/temp && rm -r /usr/local/tomcat8/webapps/* && ln -s /data/tomcat8/logs /usr/local/tomcat8/logs && ln -s /usr/local/tomcat8/logs /var/log/tomcat8 && ln -s /data/tomcat8/temp /usr/local/tomcat8/temp && mkdir -p /usr/local/tomcat8/webapps/rpa && chown -R appian:appian /usr/local/tomcat8 && if test -f /usr/local/appian/jidoka-sail/jidoka-sail.jar; then echo 'Setting up jidoka-sail' && chmod +x /usr/local/appian/jidoka-sail/start-jidoka-sail.sh && SAIL_EVERYWHERE_VERSION=25.2.0.190 && cd /usr/local/appian/jidoka-sail && curl --netrc-file $NETRC_FILE -SOL https://artifacts.eng.appianci.net/artifactory/releases/com/appian/appian-sail-evaluator/${SAIL_EVERYWHERE_VERSION}/appian-sail-evaluator-${SAIL_EVERYWHERE_VERSION}.tar && tar xf appian-sail-evaluator-${SAIL_EVERYWHERE_VERSION}.tar && mkdir data && mv jidoka-sail.zip data && mkdir static-assets && mv sailLibrary-*.zip static-assets && cd static-assets && jar xvf sailLibrary-*.zip && rm sailLibrary-*.zip && cd .. && rm appian-sail-evaluator-${SAIL_EVERYWHERE_VERSION}.tar sail-evaluator-${SAIL_EVERYWHERE_VERSION}.jar && chmod o-w /etc/supervisord.d/jidoka-sail.conf ; fi |
| COPY --chown=appian tomcat/server.xml tomcat/context.xml tomcat/web.xml tomcat/catalina.properties /usr/local/tomcat8/conf/ |
| COPY --chown=appian tomcat/setenv.sh /usr/local/tomcat8/bin |
| COPY --chown=appian rpa-version/*.war /usr/local/tomcat8/webapps/ |
| COPY --chown=appian rpa-session-manager/dependencies/jidoka-session-manager-*.jar /usr/local/tomcat8/lib |
| COPY --chown=appian rpa-session-manager/dependencies/default-session-manager.xml /usr/local/tomcat8/conf |
| COPY --chown=appian rpa-session-manager/dependencies/redisson-session-manager.xml /usr/local/tomcat8/conf |
| COPY --chown=appian start-script.sh propsReplacements.sh utilities/ExportPrivateKey.java / |
| RUN echo "Ensure world writable files and directories are secured under jidoka-sail folder" && chmod o-w /usr/local/appian/jidoka-sail/start-jidoka-sail.sh && echo "Unpacking RPA war" && cd /usr/local/tomcat8/webapps/rpa && mv /usr/local/tomcat8/webapps/ROOT.war . && jar xf ROOT.war && rm -rf /usr/local/tomcat8/webapps/rpa/ROOT.war && echo "Ensure world writable Tomcat configuration files are secured" && chmod +x,o-w /usr/local/tomcat8/bin/setenv.sh && cd /usr/local/tomcat8/conf && chmod o-w server.xml context.xml web.xml && if test -f /usr/local/tomcat8/webapps/rtdo.war; then echo 'Setting up rtdo' && mkdir -p /usr/local/tomcat8/webapps/rtdo && cd /usr/local/tomcat8/webapps/rtdo && mv ../rtdo.war . && jar xf rtdo.war && rm -rf rtdo.war ; fi && if test -f /usr/local/tomcat8/webapps/rpdo.war; then echo 'Setting up rpdo' && mkdir -p /usr/local/tomcat8/webapps/rpdo && cd /usr/local/tomcat8/webapps/rpdo && mv ../rpdo.war . && jar xf rpdo.war && rm -rf rpdo.war ; fi && if test -f /usr/local/tomcat8/webapps/robotRDO.war; then echo 'Setting up robotRDO' && mkdir -p /usr/local/tomcat8/webapps/robotRDO && cd /usr/local/tomcat8/webapps/robotRDO && mv ../robotRDO.war . && jar xf robotRDO.war && rm -rf robotRDO.war ; fi && cd / && echo "Preparing scripts to run the image" && chmod +x,o-w start-script.sh && chmod +x,o-w propsReplacements.sh && chmod o-w ExportPrivateKey.java && mkdir -p /data && chown -R appian:appian /base-configs /data && chmod +x /base-configs/docker-data-initial/jidoka-home/.jidoka/launch4j/launch4j && chmod +x /base-configs/docker-data-initial/jidoka-home/.jidoka/launch4j/bin/ld && chmod +x /base-configs/docker-data-initial/jidoka-home/.jidoka/launch4j/bin/windres && echo 'Clean up for lean image' && dnf clean all && rm -rf /var/cache/yum /tmp/* /var/tmp/* |
| VOLUME /tmp /home/appian /usr/local/tomcat8/work |
| USER appian |
| VOLUME /usr/local/appian/ae/redis |
| WORKDIR / |
| ENTRYPOINT ./start-script.sh && /bin/bash |