FROM almalinux:9 ######### OTEL Workflow ######### ### Set $VF_SERVER_ADDRESS as URL for vFunction Server Login, such as "http://10.0.0.1" or "https://vfunction.org.com" ### Set $VF_APP_ID taken from VF Server UI's "Installation Instructions" link in the Learning Tab, such as "47a10489-0000-0000-bc6e-579477ed6f40" ### Set $MY_SERVICE for this component of your Application, such as "Receipt Handler" ENV OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf ENV OTEL_EXPORTER_OTLP_ENDPOINT=$VF_SERVER_ADDRESS/api/unauth/otlp ENV OTEL_TRACES_EXPORTER=otlp ENV OTEL_METRICS_EXPORTER=none ENV OTEL_LOGS_EXPORTER=none ENV OTEL_EXPORTER_OTLP_HEADERS=X-VF-APP=$VF_APP_ID ENV OTEL_SERVICE_NAME=$MY_SERVICE RUN curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O && \ sh ./otel-dotnet-auto-install.sh && \ chmod +x $HOME/.otel-dotnet-auto/instrument.sh ######### Multiplexer Workflow ######### ### Set $REPLACE_BASE_DIR to where the various components will be installed, such as "/home/charlotteLee" COPY $ARTIFACT_REPOSITORY/datadog/Datadog.Trace.ClrProfiler.Native.so $REPLACE_BASE_PATH/datadog/Datadog.Trace.ClrProfiler.Native.so COPY $ARTIFACT_REPOSITORY/datadog/loader*.conf $REPLACE_BASE_PATH/datadog/loader.conf ######### vFunction Workflow ######### ### Set $REPLACE_BASE_DIR to where the various components will be installed, such as "/home/charlotteLee" # See descriptions in https://kb.vfunction.com/installations/configurable-settings/mono-dynamic-agent/dotnet/linux ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_NAME="CHANGE_ME" ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_HOST="CHANGE_ME" ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_ORG_ID="CHANGE_ME" ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_APP_ID="CHANGE_ME" ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_CLIENT_ID="CHANGE_ME" ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_CLIENT_SECRET="CHANGE_ME" ENV VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_INSTANCE_ID="CHANGE_ME" ENV VF_AGENT_CONF_LOCATION=$REPLACE_BASE_DIR/vfunction/etc/sysconfig/vfunction/agent/instances/default-dotnet/conf.json ENV DOTNET_TailCallOpt=0 COPY $ARTIFACT_REPOSITORY/vfunction/vfunction-controller-sudo-less-installation*.tgz $REPLACE_BASE_PATH/vfunction-controller-sudo-less-installation.tgz COPY $ARTIFACT_REPOSITORY/vfunction/installation.yaml $REPLACE_BASE_PATH/ RUN cd $REPLACE_BASE_PATH && tar -xvzf $REPLACE_BASE_PATH/vfunction-controller-sudo-less-installation.tgz && \ rm -f $REPLACE_BASE_PATH/vfunction-controller-sudo-less-installation.tgz && \ mv $REPLACE_BASE_PATH/installation.yaml $REPLACE_BASE_PATH/vfunction/etc/sysconfig/vfunction/installation/instances/default-dotnet/ && \ bash $REPLACE_BASE_PATH/vfunction/opt/vfunction/controller-installation/install.sh -i default-dotnet && \ chmod -R 777 $REPLACE_BASE_PATH/vfunction ######### Start the Container ######### ### Set $REPLACE_BASE_DIR to where the various components will be installed, such as "/home/charlotteLee" ### Set RUN_APP as workflow to start the application, such as "dotnet run" CMD ["/bin/bash", "-c", ". $HOME/.otel-dotnet-auto/instrument.sh;export CORECLR_PROFILER_PATH=$REPLACE_BASE_PATH/datadog/Datadog.Trace.ClrProfiler.Native.so;export CORECLR_ENABLE_PROFILING=1;export CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8};$RUN_APP"]