GithubHelp home page GithubHelp logo

communitytools-image2docker-win's People

Contributors

friism avatar kilasuit avatar manomarks avatar pcgeek86 avatar sixeyed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

communitytools-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

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

  1. config
  2. IIS.JSON
    3.Dockerfile

The issue was the Dockerfile didn't include the content of json for my IIS. any suggestion?

the json file
image
the Docker file
image

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

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

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

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

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.

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

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

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.

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.

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.

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

Get-Help is bare

> Get-Help ConvertTo-Dockerfile

NAME
    ConvertTo-Dockerfile

SYNTAX
    ConvertTo-Dockerfile


ALIASES
    None


REMARKS
    None

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?

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

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.