communitytools-image2docker-win's People
Forkers
kurtdegreeff colossus9 fandikurnia cspeers kilasuit sixeyed sizzles theflyingzephyr hemanthbs12 muharremokutan brandonroyal lodexinc miqui kennylowe elordahl muhamadsherif vinodkiran sairamkonuru sidbrydon whitesymmetry vvelazquez wyntuition hydau taylor-j-hawkins pulla2908 sumitsaiwal franciosi bxtp4p akbrian907 flabunsky ringtail itz1508 msk134 octansit gordonntw millian32 amataja ayyaluridevops gameoft mtemel123 resilientred msilva1610 tescherm he-haitao omnileo richardscoat83 lpassig mbzain76 bhanditz fr830 hello-packet seanwcom satishj3 darkstrumn gecoet carehart jacksonfurrier michaelandrepearce valmach vncrdo muhammad-irfan324 joefrance shivdeepnv haridarukumalli gehanpanapitiya simhams global-localhost global19 global19-atlassian-net infosecwatchman ahszn pandagopal isabella232 fabianonetto bryanchance mvpk ashahbazi58communitytools-image2docker-win's Issues
Add automated build / publish to PowerShell Gallery
The AppVeyor CI service provides free, automated CI using Windows hosts. This service can be used to automatically run tests and optionally publish to the PowerShell Gallery, when a new release is created (eg. based on Git tag / branch).
Support multiple VHDs
Where VMs run with many disks attached, we could have the IIS configuration on the C
drive pointing to apps stored on the D
drive. Need to be able to mount those additional disks in the tool - something like:
... -AdditionalDisks D=app-disk.vhd
SQL Server Artifact missing
The documentation on Docker (https://blog.docker.com/2016/12/convert-asp-net-web-servers-docker-image2docker/) suggests we can pass "SQL Server" as an artifact. I have installed and seems like I can use only IIS. I don't see the other artifact related commands in the functions folder. Are we supposed to get them from somewhere else ?
Cannot run
Logging for reference, it appears to not actually mount. This is in admin prompt:
> ConvertTo-Dockerfile -Verbose -ImagePath "C:\tmp\lift-tool\RTM\Virtual Hard Disks\RTM.vhdx" -OutputPath "c:\tmp\out" -MountPath "c:\tmp\mnt" -Artifact IIS
C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.2\Artifacts\IIS\Discover.ps1 : Cannot bind argument to
parameter 'MountPath' because it is an empty string.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.2\Functions\Private\DiscoverArtifacts.ps1:18 char:63
+ ... . $DiscoveryScript -OutputPath $OutputPath -MountPath $Mount.Path
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Discover.ps1], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Discover.ps1
Consolidate Windows Server Feature discovery into a single artifact
@pcgeek86 is there a reason for having multiple Discover/Generate steps, each for an explicit Windows Feature? Could we have a generic step that discovers all installed features with Get-WindowsFeature ... | Where Installed
and a generic generate which does Add-WindowsFeature
for all the installed features?
I think those commands are also available for 2008R2 so potentially gives the tool a wider reach.
issue to generate dockerfile for IIS
I used ConvertTo-Dockerfile -ImagePath .\Win8R2_new.vhd -Artifact IIS -ArtifactParam hwtest -OutputPath .\dfile2 to generate a Dockerfile for my IIS. there were three files generated
- config
- IIS.JSON
3.Dockerfile
The issue was the Dockerfile didn't include the content of json for my IIS. any suggestion?
Allow running against an online VM
Instead of pointing to an offline VM disk, point to an online VM. We can implement this either as:
1 - run the tool locally and point to a remote VM
2 - connect to the remote VM and run the tool on the VM.
Either approach is fine, but the solution must work across all the Windows versions we support - Server 2003 to 2016.
MSMQ configuration export
Discovery for existing MSMQ configuration - queues, queue settings (persistence etc.) - and set up in Dockerfile. Does not include an existing message data, just the confguration.
AddRemovePrograms fails to find json file
PS C:\users\public\Documents\Hyper-V\Virtual hard disks> ConvertTo-Dockerfile -ImagePath .\2012.vhdx -OutputPath .\test\ -Artifact DHCPServer, DNSServer, IIS, AddRemovePrograms -Verbose
Leads to the following error:
Get-Content : Cannot find path 'C:\users\public\Documents\Hyper-V\Virtual hard disks\test\AddRemovePrograms.json'
because it does not exist.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.0\Artifacts\AddRemovePrograms\Generate.ps1:19 char:13
- $Artifact = Get-Content -Path $Manifest -Raw | ConvertFrom-Json
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : ObjectNotFound: (C:\users\public...vePrograms.json:String) [Get-Content], ItemNotFoundEx
ception - FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
- CategoryInfo : ObjectNotFound: (C:\users\public...vePrograms.json:String) [Get-Content], ItemNotFoundEx
Handle IIS WebSites with multiple Web Applications
Currently this breaks in Generate_IIS, but we need to extend Discover_IIS and the artifact JSON to allow for multiple Web Apps under one Web Site. Sample applicationHost.config
:
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<application path="/WebApplication1" applicationPool="DefaultAppPool">
<virtualDirectory path="/" physicalPath="C:\scm\github\sixeyed\IisConsoleLog\WebApplication1" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
...
The solution also needs to support the same setup in Metabase.xml
configuration.
We should support three scenarios:
1 - allow a specific web app to be extracted from a VM. E.g. in the above sample we have the website called Default Web Site
which contains an app called WebApplication1
. Users should be able to extract just that app into the Dockerfile with -Artifact IIS -ArtifactParam 'Default Web Site/WebApplication1'
2 - If a website but not a web app is specified as a parameter, extract all the web apps in the website into the Dockerfile, e.g. -Artifact IIS -ArtifactParam 'Default Web Site'
3 - if no artifact parameter specified, preserve the existing IIS setup - bringing all websites and all web apps into the Dockerfile, e.g. -Artifact IIS
Add unit tests
Standard Pester tests to verify generated Dockerfiles
Write a bootstrap startup command in the Dockerfile
For any features which run as Windows Services, add a Start-Service
command in a bootstrap file, and set the bootstrap as the Dockerfile's CMD
instruction.
Allow use of custom Dockerfile template
So users can replace the default template with their own. Would allow extracting artifacts into Dockerfiles using a preferred base image, instead of microsoft/windowsservercore
.
Script fails with cannot find path error
Running this command in an administrator PS shell:
ConvertTo-Dockerfile -ImagePath D:\temp\Share\COVQAWEBSVC03\COVQAWEBSVC03-disk1.vhdx -Ar
tifact IIS -OutputPath d:\temp\share\docker
Fails with a bunch of the below errors. Does something have to already exist on my machine for this to work? Thanks for any help!
Copy-Item : Cannot find path 'C:\Users\RAY~1.DEV\AppData\Local\Temp\6c849d2b-3068-455f-a42d-2b2b1b362d20-mount\WebSites
\websvc\AccountManagement\MessagingServices' because it does not exist.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.1\Functions\Private\Artifacts\IIS\Generate_IIS.ps1:64
char:5
-
Copy-Item $fullSourcePath $ManifestPath -Recurse -Force
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : ObjectNotFound: (C:\Users\RAY~1....ssagingServices:String) [Copy-Item], ItemNotFoundExce
ption - FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
- CategoryInfo : ObjectNotFound: (C:\Users\RAY~1....ssagingServices:String) [Copy-Item], ItemNotFoundExce
Copy-Item : Cannot find path
'C:\Users\RAY~1.DEV\AppData\Local\Temp\6c849d2b-3068-455f-a42d-2b2b1b362d20-mount\WebSites\websvc\Enterprise' because
it does not exist.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.1\Functions\Private\Artifacts\IIS\Generate_IIS.ps1:64
char:5
-
Copy-Item $fullSourcePath $ManifestPath -Recurse -Force
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : ObjectNotFound: (C:\Users\RAY~1....bsvc\Enterprise:String) [Copy-Item], ItemNotFoundExce
ption - FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
- CategoryInfo : ObjectNotFound: (C:\Users\RAY~1....bsvc\Enterprise:String) [Copy-Item], ItemNotFoundExce
Discover Exchange Server
Discover an Exchange Server and port over all the data and settings
Verify with Windows Server 2008 images
Check to see if we can use a w2k8 VM as the source. Document outcome.
Support multiple port bindings for IIS apps
Web apps can have several bindings - e.g. HTTP on port 8088, net.tcp on port 8888. Need to extract them from the source config and include them in the New-Website
instruction in the Dockerfile.
Find and install all NuGet installed Packages
Generate_IIS : You cannot call a method on a null-valued expression.
Generate_IIS : You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\image2docker\1.8.2\Functions\Private\GenerateDockerfile.ps1:34 char:23
+ ... ockerfile = & "Generate_$Artifact" -MountPath $MountPath -ManifestPat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Generate_IIS], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull,Generate_IIS
PS C:\> ConvertTo-Dockerfile -ImagePath D:\Win2008r2Std-Gen1_boot.vhdx -Verbose -OutputPath d:\iis2
cmdlet ConvertTo-Dockerfile at command pipeline position 1
Supply values for the following parameters:
Artifact: iis
Full SQL Server porting
Install and set-up SQL server and port over all data and settings
Apache Issue
PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> ConvertTo-Dockerfile -ImagePath 'C:\Users\Public\Documents\Hyper-V\Virtual hard disks\I2D2.vhdx' -Artifact IIS,Apache
ConvertTo-Dockerfile : Cannot process argument transformation on parameter 'Artifact'. Cannot convert value to type
System.String.
At line:1 char:108
- ... \Documents\Hyper-V\Virtual hard disks\I2D2.vhdx' -Artifact IIS,Apache
-
~~~~~~~~~~
- CategoryInfo : InvalidData: (:) [ConvertTo-Dockerfile], ParameterBindingArgumentTransformationException
- FullyQualifiedErrorId : ParameterArgumentTransformationError,ConvertTo-Dockerfile
Export single IIS Web App
New option to export a single item - in the case of IIS, it would be one web app, so the source could have multiple sites running but the Dockerfile would only build one of them
Discover Sharepoint
Discover Sharepoint and port over all data and settings
Handle `Path Not Found` due to multiple virtual hard disks
Where path does not exist due to missing virtual disk, process should have the option for skip files that aren't accessible rather than failing.
Detect .NET Framework 4.5 dependencies within app and add to Dockerfile
Not Enough Positional Parameters for All Artifacts
Currently when trying to convert to docker file with all possible artifacts, an error "a positional parameter cannot be found that accepts argument 'xxxx'. " This appears to be due to not having enough positional parameters permitted for the total possible supported artifacts.
--Edit:
Additionally, although this might need to be a separate ticket, I've encountered issues where the conversion doesn't work when passing multiple artifacts simultaneously. For example, I'll pass AddRemovePrograms and AllWindowsFeatures together, and the verbose output will show both functions being executed at the same time, which results in only one of the functions executing properly, so only one json file gets created.
Verify with Windows Server 2003 images
Check to see if we can use a w2k3 VM as the source. Document outcome.
Generate_IIS : You cannot call a method on a null-valued expression.
Hi, Trying to convert from existing server with a lot of apps and getting error:
How to convert or fix? Thanks
`Generate_IIS : You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\GenerateDockerfile.ps1:34 char:23
- ... ockerfile = & "Generate_$Artifact" -MountPath $MountPath -ManifestPat ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidOperation: (:) [Generate_IIS], RuntimeException
- FullyQualifiedErrorId : InvokeMethodOnNull,Generate_IIS`
IIS file ownership only needed for App_Data
Currently for IIS apps, the Dockerfile changes ownership of all files in the site content path to the IIS user group. The only files that should need write access are in the App_Data
folder for ASP.NET apps. It would be safer to change ownership for that path only.
Add HEALTHCHECK in generated Dockerfile
For ASP.NET this is straightforward - but it only really works if a single Website is in the output, so it's dependent on ArtifactParam
being specified,
Find and install all chocolatey installed packages
Support multiple -RemotePath or alternative -RemoteServer parameter
In our environment system and data disks are always separated such that windows is on the c:\drive, the c:\drive IIS directory is always empty and the IIS files are on the e:\ drive, the data disk.
It should be possible for the tool to connect to IIS and correctly find the installation, however at the moment the –RemotePath option available doesn’t handle this scenario.
so...
ConvertTo-Dockerfile -RemotePath \\myserver\c$\ -OutputPath c:\i2d\myservertest2 -Artifact IIS -ArtifactParam Site1/RefDataService
gives error:
Copy-Item : Cannot find path '\\myserver\c$\\IISDATA\SITE1' because it does not exist.
and
ConvertTo-Dockerfile -RemotePath \\myserver\e$\ -OutputPath c:\i2d\myservertest2 -Artifact IIS -ArtifactParam Site1/RefDataService
gives error:
Get-ItemProperty : Cannot find path '\\myserver\e$\\windows\system32\hal.dll' because it does not exist.
This is similar to Issue #38 which confirms that there is also no solution to analysing by .vhd where the installation is over multiple disks. These is essentially the same, when wanting to analyse a remote server rather than a disk image.
Discovery IIS Web apps
Discover IIS web apps including .NET apps
Export public keys for certs from the VM to the Dockerfile
Enterprises often have a custom CA that their machines are provisioned to trust, which gets used for any custom certs they make. Thinking something like a new flag /ExportTrustedCertificates
which will check the cert store on the VM and copy public keys to the Dockerfile, so the container trusts the enterprise CA.
For each cert to trust in the Docker image, the Dockerfile needs some PowerShell like this:
$cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2 <file.crt>
$store = new-object System.Security.Cryptography.X509Certificates.X509Store('Root','localmachine')
$store.Open('ReadWrite')
$store.Add($cert)
$store.Close()
Support WCF and ASP.NET 3.5 Apps in IIS
The Windows Server Core base image does not have .NET 3.5, so we need to check if the source has it and either add to the Dockerfile, or switch to the microsoft/aspnet:3.5
image as the base. Here's how they do the .NET install in that Dockerfile.
Property add cannot be found
When doing an IIS Docker2 Image I'm getting a lot of Property "add" cannot be found inside the Verbose output:
ConvertTo-Dockerfile -ImagePath D:\disk\DEV-SRV-N1.VHDX -Artifact iis -OutputPath C:\i2d2 -Verbose
...
VERBOSE: Checking IIS ApplicationHost config for Windows Version: 10.0
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
Select-Object : Property "add" cannot be found.
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.5\Functions\Private\Artifacts\IIS\GetManifestFromApplicationHost.ps1:94 char:103
- ... elect-Object -ExpandProperty Node | Select-Object -ExpandProperty add
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (handlers:PSObject) [Select-Object], PSArgumentException
- FullyQualifiedErrorId : ExpandPropertyNotFound,Microsoft.PowerShell.Commands.SelectObjectCommand
VERBOSE: Target Image Version 10.0.14393.1561
Convert-WindowsImage is the name of another tool for ISO -> VHD conversion
Convert-WindowsImage
is already well known commandlet used to convert Windows ISO images to VHD/VHDX: https://gallery.technet.microsoft.com/scriptcenter/Convert-WindowsImageps1-0fe23a8f
All commandlets are supposed to have a verb-noun format, so I think something like Create-Dockerfile
or ConvertTo-Dockerfile
would make more sense to avoid confusion with the existing Convert-WindowsImage
Get-Help is bare
> Get-Help ConvertTo-Dockerfile
NAME
ConvertTo-Dockerfile
SYNTAX
ConvertTo-Dockerfile
ALIASES
None
REMARKS
None
Add .NET and ASP.NET feature with IIS
If there are app pools with managed runtimes from the Discover phase, add the .NET and ASP.NET features in the Generate phase.
Enhance Apache discover
Enhance Apache discovery by discovering it where ever it located in the image and copying files and settings
Enable Appveyor for unit testing
To enable the repository to be able to use Appveyor to run the included Pester tests this would have to be added by a member of the Docker Appveyor team which was something that I could not do.
The Appyeyor.yml file is all set up and ready can could be used as well easily enough to publish newly merged PR's given the right tweeking
Discover Java web apps
Discover Java Web Apps using standard Java app servers:
Tomcat
JBoss
WebSphere
WebLogic
Missing Run commands and Windows commands not running
ConvertTo-Dockerfile is creating an insufficient Dockerfile for me from my windows server 2016 vhdx. When I try extracting an ASP.net app hosted in IIS, it does not supply the standard line "RUN Add-WindowsFeature Web-server, Net-Framework-45-ASPNET, Web-Asp-Net45"
Side note:
Also, my "RUN Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationDevelopment,IIS-ApplicationInit,..." is receiving an error message saying,"Enable-WindowsOptionalFeature : One or several parent features are disabled so
current feature can not be enabled."
Is my vhdx not reaching a certain requirement?
Identify Windows Authentication on IIS and notify operator that --credentialspec is required at runtime
GetManifestFromApplicationHost error
Here's the build
VERBOSE: User specified the Force Parameter. Removing existing items from
c:\Image2Docker\backup\auto_image2docker\mywebapp
VERBOSE: User specified path c:\Image2Docker\backup\auto_image2docker\mywebapp has been created
VERBOSE: Reading image file: C:\VMs\WS16-IIS - Copy.vhdx
VERBOSE: Image file appears to be a valid WIM or VHDX file.
VERBOSE: Image file C:\VMs\WS16-IIS - Copy.vhdx contains 1 images
VERBOSE: This image appears to be a valid Virtual Hard Drive (VHDX) file.
VERBOSE: Image type is: VHDX
VERBOSE: User didn't specify a mount path. Using:
C:\Users\joreynes\AppData\Local\Temp\0663f122-a68f-4d57-a24a-18862d9e0861-mount
VERBOSE: Finished mounting image c:\VMs\WS16-IIS - Copy.vhdx at mount point
C:\Users\joreynes\AppData\Local\Temp\0663f122-a68f-4d57-a24a-18862d9e0861-mount
VERBOSE: Finished mounting image to: C:\Users\joreynes\AppData\Local\Temp\0663f122-a68f-4d57-a24a-18862d9e0861-mount
VERBOSE: Starting conversion process
VERBOSE: Started discovering IIS artifact
VERBOSE: Checking IIS ApplicationHost config for Windows Version: 10.0
VERBOSE: Finished dismounting the Windows image from
C:\Users\joreynes\AppData\Local\Temp\0663f122-a68f-4d57-a24a-18862d9e0861-mount
GetManifestFromApplicationHost : Cannot convert value "System.Object[]" to type "System.Xml.XmlDocument". Error:
"There is an unclosed literal string. Line 900, position 87."
At C:\Program Files\WindowsPowerShell\Modules\Image2Docker\1.8.1\Functions\Private\Artifacts\IIS\Discover_IIS.ps1:51
char:27
- ... estResult = GetManifestFromApplicationHost -OutputPath $OutputPath -M ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo : InvalidArgument: (:) [GetManifestFromApplicationHost], RuntimeException
- FullyQualifiedErrorId : InvalidCastToXmlDocument,GetManifestFromApplicationHost
Option to generate multiple Dockerfiles from one VM
To cater for scenarios where the source VM runs multiple workloads. E.g. for IIS, generate a separate Dockerfile for each web app, so a VM which hosts many sites can be the source for many Docker images.
Add documentation for porting SQL Server databases
The /docs/ folder only has IIS instructions, it would be nice to have clear-cut documentation on pulling over live SQL Server databases, especially from production servers where there are multiple databases and you only want to pull over a single database.
Docker image for the tool
With PowerShell dependencies & the tool module installed, so you can do docker run docker/image2docker my.vhd
on any Windows box.
Support for Oracle client and server installation
Add support for VMDK files
Support for VMDK files should be on our roadmap
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.