Install - Java Agent Controller on Containerized Springboot Alpine App for Dynamic Analysis


Installation Steps

  1. Download the latest vFunction Sudoless Alpine 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, the installation.yaml and the startup.sh 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 alpine:latest

COPY EXISTING_FLOW

### vFunction Details
ARG VF_CONTROLLER_DEFAULT_JAVA_AGENT_APPLICATION_SERVER="other"
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"

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

RUN cd /tmp && tar zxvf /tmp/vfunction-controller-sudo-less-installation.tgz     && \
   rm -rf /tmp/vfunction-controller-sudo-less-installation.tgz     && \
   sh /tmp/vfunction/opt/vfunction/controller-installation/install.sh -i default-java -n -a     && \
   chmod -R 777 /usr/bin/ /tmp/vfunction

ARG jvm_args=$(cat /tmp/vfunction/etc/sysconfig/vfunction/agent/instances/default-java/vmargs-examples/raw)
ENV JAVA_TOOL_OPTIONS="$jvm_args"

RUN EXISTING_FLOW

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