Closed andreymir closed 7 years ago
~This should do the trick~ See updated suggestion.
~FROM microsoft/dotnet-framework:4.6.2~
~ADD https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe /vc_redist.x64.exe~ ~RUN C:\vc_redist.x64.exe /quiet /install~
~# Rest of your Dockerfile~
Thanks!
RUN C:\vc_redist.x64.exe /quiet /install - does not work for me. I ran it from the cmd prompt from within the container, I just get the prompt back immediately without any work/install getting done.
@nkamatam you'll need to put that command into your dockerfile, not run manually from your command line.
@mlapaglia It work for me when i put in docker file, but it does not work when i try to install it from container. Is there any reason to it? As i was trying to run helloworld exe but it is still not printing to console after above installation as well. I verified in registry also.
Is the installation of VC runtime does not work with "mcr.microsoft.com/dotnet/core/aspnet:2.1" base image which is basically of ASP.NET CORE. If I try the dotnet framework base image VC runtime gets installed. Is the reason on mentioned here https://social.msdn.microsoft.com/Forums/aspnet/en-US/67425dcd-6812-4b52-81a8-f85c0e4e7d59/error-3221225781-when-running-existing-applications-in-docker?forum=windowscontainers
This should do the trick
FROM microsoft/dotnet-framework:4.6.2 ADD https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe /vc_redist.x64.exe RUN C:\vc_redist.x64.exe /quiet /install # Rest of your Dockerfile
Hi,
I am having issues with this solution, I am getting this error, can i get some help?
container eec... encountered an error during hcsshim::System::CreateProcess: failure in a Windows system call: The user name or password is incorrect. (0x52e)
@Escoto, That error seems orthogonal to your Dockerfile and is a general Windows Docker issue. The username or password
part is interesting. I would suggest posting this on the windows containers forum.
I have a refined suggestion that follows the Dockerfile best practices. The previous suggestion is not optimal from a layer perspective.
# escape=`
# Change the base image as appropriate for your scenario.
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8
USER ContainerAdministrator
RUN curl -fSLo vc_redist.x64.exe https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe `
&& start /w vc_redist.x64.exe /install /quiet /norestart `
&& del vc_redist.x64.exe
I have a refined suggestion that follows the Dockerfile best practices. The previous suggestion is not optimal from a layer perspective.
# escape=` # Change the base image as appropriate for your scenario. FROM mcr.microsoft.com/dotnet/framework/runtime:4.8 USER ContainerAdministrator RUN curl -fSLo vc_redist.x64.exe https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe ` && start /w vc_redist.x64.exe /install /quiet /norestart ` && del vc_redist.x64.exe
I'm fairly new to Dockerfiles, but the following gave me an error:
The command 'powershell -Command $ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; curl -fSLo vc_redist.x86.exe https://aka.ms/vs/16/release/vc_redist.x86.exe && start /w vc_redist.x86.exe /install /quiet /norestart && del vc_redist.x86.exe' returned a non-zero code: 1
I switched it out for @MichaelSimons's solution and that works much better.
I have a refined suggestion that follows the Dockerfile best practices. The previous suggestion is not optimal from a layer perspective.
# escape=` # Change the base image as appropriate for your scenario. FROM mcr.microsoft.com/dotnet/framework/runtime:4.8 USER ContainerAdministrator RUN curl -fSLo vc_redist.x64.exe https://download.microsoft.com/download/6/A/A/6AA4EDFF-645B-48C5-81CC-ED5963AEAD48/vc_redist.x64.exe ` && start /w vc_redist.x64.exe /install /quiet /norestart ` && del vc_redist.x64.exe
Does not work to me. I get Access Denied error on start /w vc_redist.x64.exe /install /quiet /norestart
command
The first suggestion does the trick!
I'm using the following:
# escape=`
FROM mcr.microsoft.com/dotnet/framework/runtime:4.8
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
Invoke-WebRequest "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"; `
Start-Process -filepath C:\vc_redist.x64.exe -ArgumentList "/install", "/passive", "/norestart" -Passthru | Wait-Process; `
Remove-Item -Force vc_redist.x64.exe;
It works for me and should be more in line with the Best practices.
Hi everyone! Thanks a lot for your help! Bellow is my part which works great!
# Visual C++ 2015 Multithreaded Runtime DLLs (vcruntime140.dll)
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
Invoke-WebRequest "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"; \
Start-Process -filepath C:\vc_redist.x64.exe -ArgumentList "/install", "/passive", "/norestart" -Passthru | Wait-Process; \
Remove-Item -Force vc_redist.x64.exe;
# Visual C++ 2013 Multithreaded Runtime DLLs (msvcp120.dll and msvcr120.dll)
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
Invoke-WebRequest "https://aka.ms/highdpimfc2013x64enu" -OutFile "vc_redist.x64.exe"; \
Start-Process -filepath C:\vc_redist.x64.exe -ArgumentList "/install", "/passive", "/norestart" -Passthru | Wait-Process; \
Remove-Item -Force vc_redist.x64.exe;
None of these work
Using docker on Windows is by far the worst idea I invested my time on.
On Fri, 24 Mar, 2023, 4:17 am abaghum, @.***> wrote:
None of these work
— Reply to this email directly, view it on GitHub https://github.com/microsoft/dotnet-framework-docker/issues/15#issuecomment-1482010847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFBDGBZSGTNQVKBOPVJJM6LW5THG3ANCNFSM4DH2GYQQ . You are receiving this because you were mentioned.Message ID: @.***>
Hi All, I am using Podman instead of Docker.. Can i use C++ Redistributable in podman container since its linux based..?
Hi All, I am using Podman instead of Docker.. Can i use C++ Redistributable in podman container since its linux based..?
What is your scenario for using this in the context of Linux?
Podman will support your use of wsl(2) based linux images on a Windows host but not a lot of call for visual c runtime in that case.
This does not work if the image is Nano Server 64 based, because the installer is a 32 bit app and immediately terminates with exit code 3221225781 on that system.
What would need to be done to the dotnet/sdk or dotnet/aspnet base images to get this working correctly? Our application leverages sqlcipher, which won't run without the redist. I can get it running on windows:ltsc2019, but the image size is enormous.
@SCLDGit - Have you tried this suggestion?
@SCLDGit - Have you tried this suggestion?
Yep. After giving it some more thought I'm thinking it's because the dotnet sdk and aspnet images are meant to run cross platform on both wsl and hyper-v containers, which vcredist is obviously a Windows only package.
@SCLDGit - Have you tried this suggestion?
Yep. After giving it some more thought I'm thinking it's because the dotnet sdk and aspnet images are meant to run cross platform on both wsl and hyper-v containers, which vcredist is obviously a Windows only package.
I missed that you were asking about the .NET (Core) images and the not .NET Framework images. You should be able to install redist on the .NET Windows Server Core images. As you noted it won't work with the Linux images and it also won't work on the Nano Server images.
I have an ASP.NET application that requires native libraries to run. How could I install Microsoft Visual C++ 2015 Redistributable into this image?