11-14-2018 08:03 AM
Hi John
This response might be a little late and you've already got this working. I just found it strange that you couldn't get the silent install of the RTE working and had to resort to using .msi files. So I fired up container using the windowsservercore image and gave it a shot. I used the LV 18 RTE (LVRTE2018_f2Patch-64std.exe) and from the log the install finished without (significant) error.
The trick I used for the install was to not directly call the above .exe in the container. It is a selfextracting archive so firstly I ran it on my host, deselecting the autorun of .\setup.exe. If you don't change the default path the files end up at is "C:\National Instruments Downloads\LabVIEW\Run-Time Engine\2018 (64-bit) f2 patch\Standard"
I mapped the entire "Standard" folder to the container and ran the following install command in the folder:
.\setup /q /acceptlicenses yes /r /log C:\Users\Public\log.txt /disableNotificationCheck
To monitor the install progress I simply kept checking the size of the log.txt file. I assumed the install was done when the size was fixed for a number of checks 🙂
I confirmed that the RTE was working by building a dll from some VIs adding and subtracting numbers and calling the dll from a Python script in the container.
I didn't use a dockerfile for the install, I did it all interactively and then commited a new image from the container, so as a next step I'm going to create a dockerfile that does the same thing. I'll post back with results if anyone is still interested?
Best Regards
David
Senior Systems Engineer
Northern European Region
11-15-2018 12:20 PM
We've converted some of our LabVIEW code to run under a Linux docker container. We're using only the LabVIEW runtime engine in the container, not the development environment. We've made the application headless by building it as a shared library with a wrapper. The approach is outlined here: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019RYlSAM&l=en-US
One useful thing that article leaves out is the use of LVDLLStatus. If you're having problems interfacing with your LabVIEW code in the C wrapper, it can tell you what the problem is. As with any LabVIEW function involving strings being called from C, the function doesn't return a pointer to a string. Instead, you have to allocate the memory yourself before you call LabVIEW and pass the pointer.
char *ErrStr;
int ErrStrLen = 1000;
ErrStr = malloc(ErrStrLen);
LVDLLStatus(ErrStr, ErrStrLen, NULL);
printf("LVDLL Status: %s\n", ErrStr);
free(ErrStr);
The Dockerfile if anyone is interested...
FROM centos # Install labview runtime RUN mkdir ~/LabVIEW_Runtime RUN curl -o /root/LabVIEW_Runtime/runtime.tgz \ http://download.ni.com/support/softlib/labview/labview_runtime/2018/Linux/f1/LabVIEW2018f1RTE_Linux.tgz RUN cd /root/LabVIEW_Runtime ; tar xf ./runtime.tgz ; rm -f ./runtime.tgz RUN rpm -Uvh /root/LabVIEW_Runtime/*.rpm RUN rm -rf ~/LabVIEW_Runtime
Then you'll need to use COPY and RUN to install your application, figure out how you're going to do networking (expose/publish), and start the thing using ENTRYPOINT.
01-05-2026 05:22 PM
Hi;
Labview does indeed provided the ability to display the interface via web / Webserver, (Web UI) and I suspect this could be made to work with Docker; this will mean converting the interface of course and normal labview applications would need to be modified. In the past I have written embedded labview applications that were essentially headless, and to see the interface, one had to login via the web UI remotely from another machine. The potential limitation is that Docker may not quite support the windows executable... Of course, I did this work quite a few years back, why I do not have all the details at my finger tips
01-07-2026 02:25 PM
@stranger wrote:
Hi;
Labview does indeed provided the ability to display the interface via web / Webserver, (Web UI) and I suspect this could be made to work with Docker; this will mean converting the interface of course and normal labview applications would need to be modified. In the past I have written embedded labview applications that were essentially headless, and to see the interface, one had to login via the web UI remotely from another machine. The potential limitation is that Docker may not quite support the windows executable... Of course, I did this work quite a few years back, why I do not have all the details at my finger tips
LabVIEW no longer lets you display the FP via webserver without the RTE. Well, you can SEE it, you just can't DO anything with it.
But that said, NI has official Docker images now anyway: https://github.com/ni/labview-for-containers/tree/main