Install - Java Agent Controller on Containerized Tomcat App for Dynamic Analysis



Installation Steps

  1. Download the latest vFunction Sudoless Controller Installation TGZ
  2. Create a folder for vFunction artifacts in the Artifact Repository accessible by the Docker Build
  3. Add the vFunction Sudoless Controller Installation TGZ to the Artifact Repository
  4. Create a vFunction specific branch to add the vFunction artificats to the Application’s Dockerfile
  5. Modify the Application’s Dockerfile
FROM <existing_docker_image>

COPY <existing_workflow>
RUN <existing_workflow>

### vFunction workflow

COPY /artifact_repository/vfunction/vfunction-controller-sudo-less-installation*.tgz /tmp/vfunction-controller-sudo-less-installation.tgz

ARG VF_CONTROLLER_DEFAULT_JAVA_AGENT_APPLICATION_SERVER="tomcat"
ARG VF_CONTROLLER_DEFAULT_JAVA_AGENT_APPLICATION_JAVA_VERSION=11

### See https://kb.vfunction.com/installations/configurable-settings/mono-dynamic-agent/java/linux for more details about each of the settings below
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_HOST="http://vfunction.myorg.com"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_NAME="docker-agent"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_ORG_ID="1111-11-11-1111"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_APP_ID="1111-11-11-1111"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_CLIENT_ID="1111-11-11-1111"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_CLIENT_SECRET="1111-11-11-1111"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_INSTANCE_ID="container"
ARG VF_CONTROLLER_DEFAULT_JAVA_CONTROLLER_TAGS="prod"

RUN cd /tmp && tar zxvf /tmp/vfunction-controller-sudo-less-installation.tgz     && \
   rm -rf /tmp/vfunction-controller-sudo-less-installation.tgz     && \
   bash /tmp/vfunction/opt/vfunction/controller-installation/install.sh -i default-java -n  
    && \
   cat /tmp/vfunction/etc/sysconfig/vfunction/agent/instances/default-java/vmargs-examples/tomcat >> /usr/local/tomcat/bin/setenv.sh    && \
   chmod -R 777 /tmp/vfunction           && \
   chown -R <tomcat>:<tomcat> /tmp/vfunction                                             

ENTRYPOINT [<existingWorkflowIfUsed>]
CMD [<existingWorkflowIfUsed>]

  1. Build and deploy the Application
  2. Confirm that the Application comes up and functions as expected
  3. If any issues arise:

Video Guided Installation