# Use the official Windows Server Core image FROM mcr.microsoft.com/dotnet/aspnet:7.0-windowsservercore-ltsc2019 AS base LABEL author="Cerasela Constantin"
EXPOSE 80 EXPOSE 443
# create Applicare singleagent directory RUN mkdir -p C:\app\ApplicareSingleAgentWindows
# set environment variable in container ENV CORECLR_ENABLE_PROFILING 1 ENV CORECLR_PROFILER {AD0AB006-9F79-43F1-B5CF-26768A70E789} ENV CORECLR_PROFILER_PATH "C:\app\Arcturus.Applicare.DotNetAgent.Profiler.dll" ENV eum.beacon <Applicare_controller_protocol>:<controller_IP>:<controller_port>:<controller_port>/applicare/eum/beacon ENV arceum.js <Applicare_controller_protocol>:<controller_IP>:<controller_port>:<controller_port>/applicare/eum/beacon/arc-eum.js ENV applicare.address <Applicare_controller_protocol>:<controller_IP>:<controller_port> ENV applicare.agent.name <Server_Name>_sa ENV DotnetAgent.httpProfilingState Enabled ENV DotnetAgent.sqlProfilingState Enabled
# Download ApplicareSingleAgent and extract the contents of the zip file RUN curl -k --noproxy '*' <Applicare_controller_protocol>:<controller_IP>:<controller_port>/standalone?userId=0"&"filename=ApplicareSingleAgentWindows >C:/app/ApplicareSingleAgentWindows/ApplicareSingleAgentWindows.zip RUN powershell -Command Expand-Archive -Path C:/app/ApplicareSingleAgentWindows/ApplicareSingleAgentWindows.zip -DestinationPath C:/app/ApplicareSingleAgentWindows -Force
RUN curl -L https://s3.amazonaws.com/ARC_PUBLIC/DotNet.zip -o C:/app/DotNet.zip RUN powershell -Command Expand-Archive -Path C:/app/DotNet.zip -DestinationPath C:/app -Force RUN powershell -Command Expand-Archive Remove-Item -Path C:/app/DotNet.zip -Force
# Enable the .Net 3.5 framework feature in container SHELL ["powershell", "-ExecutionPolicy", "Bypass"] RUN powershell -ExecutionPolicy Bypass -Command { Invoke-WebRequest -Uri https://dotnetbinaries.blob.core.windows.net/dockerassets/microsoft-windows-netfx3-1809.zip -OutFile C:/microsoft-windows-netfx3.zip } RUN powershell -Command Expand-Archive -Path C:/microsoft-windows-netfx3.zip -DestinationPath C:/packages RUN powershell -Command Expand-Archive Remove-Item -Path C:/microsoft-windows-netfx3.zip -Force RUN Install-WindowsFeature -Name NET-Framework-Features -Source C:/packages -Verbose
# Copy the Dotnet Application to container. WORKDIR /app COPY /net7.0/* ./
# Start the Dotnet Agent, SingleAgent and Dotnet application. ENTRYPOINT ["cmd", "/C", "start", "/B", "Arcturus.Applicare.DotNetAgent.Console.exe", "&&", "cmd", "/C", "start", "/B", "C:/app/ApplicareSingleAgentWindows/startAgent.bat", "&&", ".net", "<Application_name>.dll"]
Replace the below values in the above script
Applicare_controller_protocol -> http (or) https
controller_IP -> Applicare Controller IP
controller_port -> Applicare Controller Port
Application_name -> Name the file for the .NET application
Docker
If you are running the .NET image in a Docker container, Add and execute the following command before starting the container.
--hostname <Server_Name>
Server_Name = Give the same name here as already given in dotnet dockerfile.
Kubernetes
If running the .NET image on a Kubernetes pod, Add the following command to the YAML file, placing it next to the container 'spec' line.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
hostname: <Server_Name>
containers:
- name: Dotnet
image: Nop
(OR)
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
env:
- name: hostname
value: <Server_Name>
containers:
- name: Dotnet
image: Nop
Server_Name = Use the same name here as already given in .NET Dockerfile.