protected async Task RunTestAsync( string language, string languageVersion, string samplePath, int containerPort = 8000, bool specifyBindPortFlag = true, string buildImageName = Settings.BuildImageName) { var volume = DockerVolume.CreateMirror(samplePath); var appDir = volume.ContainerDir; var entrypointScript = "./run.sh"; var bindPortFlag = specifyBindPortFlag ? $"-bindPort {containerPort}" : string.Empty; var scriptBuilder = new ShellScriptBuilder() .AddCommand($"cd {appDir}"); if (string.Equals("python", language, StringComparison.OrdinalIgnoreCase) || string.Equals("nodejs", language, StringComparison.OrdinalIgnoreCase)) { scriptBuilder = scriptBuilder.AddCommand($"oryx create-script -appPath {appDir} {bindPortFlag}"); } else { scriptBuilder = scriptBuilder.AddCommand($"oryx -appPath {appDir} {bindPortFlag}"); } var script = scriptBuilder.AddCommand(entrypointScript) .ToString(); var runtimeImageName = _imageHelper.GetTestRuntimeImage(language, languageVersion); if (string.Equals(language, "nodejs", StringComparison.OrdinalIgnoreCase)) { runtimeImageName = _imageHelper.GetTestRuntimeImage("node", languageVersion); } string link = $"{_dbFixture.DbServerContainerName}:{Constants.InternalDbLinkName}"; await EndToEndTestHelper.BuildRunAndAssertAppAsync( _output, new List <DockerVolume> { volume }, buildImageName, "oryx", new[] { "build", appDir, "-l", language, "--language-version", languageVersion }, runtimeImageName, _dbFixture.GetCredentialsAsEnvVars(), containerPort, link, "/bin/sh", new[] { "-c", script }, async (hostPort) => { var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); Assert.Equal( DbContainerFixtureBase.GetSampleDataAsJson(), data.Trim(), ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); }); }
public async Task Python37App_MicrosoftSqlServerDB(string imageTag) { // Arrange var appName = "mssqlserver-sample"; var hostDir = Path.Combine(_hostSamplesDir, "python", appName); var volume = DockerVolume.CreateMirror(hostDir); var appDir = volume.ContainerDir; var script = new ShellScriptBuilder() .AddCommand($"oryx create-script -appPath {appDir} -bindPort {ContainerPort}") .AddCommand(DefaultStartupFilePath) .ToString(); await EndToEndTestHelper.BuildRunAndAssertAppAsync( appName, _output, new List <DockerVolume> { volume }, _imageHelper.GetBuildImage(imageTag), "oryx", new[] { "build", appDir, "--platform", "python", "--platform-version", "3.7" }, _imageHelper.GetRuntimeImage("python", "3.7"), SqlServerDbTestHelper.GetEnvironmentVariables(), ContainerPort, "/bin/bash", new[] { "-c", script }, async (hostPort) => { var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); Assert.Equal( DbContainerFixtureBase.GetSampleDataAsJson(), data.Trim(), ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); }); }
public async Task NodeApp_MicrosoftSqlServerDB() { // Arrange var appName = "node-mssql"; var hostDir = Path.Combine(_hostSamplesDir, "nodejs", appName); var volume = DockerVolume.CreateMirror(hostDir); var appDir = volume.ContainerDir; var script = new ShellScriptBuilder() .AddCommand($"oryx -appPath {appDir} -bindPort {ContainerPort}") .AddCommand(DefaultStartupFilePath) .ToString(); await EndToEndTestHelper.BuildRunAndAssertAppAsync( appName, _output, new List <DockerVolume> { volume }, Settings.BuildImageName, "oryx", new[] { "build", appDir, "-l", "nodejs", "--language-version", "10.14" }, "oryxdevms/node-10.14", GetEnvironmentVariables(), ContainerPort, "/bin/bash", new[] { "-c", script }, async (hostPort) => { var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); Assert.Equal( DbContainerFixtureBase.GetSampleDataAsJson(), data.Trim(), ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); }); }
// pdo_sqlsrv only supports PHP >= 7.1 public async Task PhpApp_UsingPdo(string phpVersion) { // Arrange var appName = "sqlsrv-example"; var hostDir = Path.Combine(_hostSamplesDir, "php", appName); var volume = DockerVolume.CreateMirror(hostDir); var appDir = volume.ContainerDir; var script = new ShellScriptBuilder() .AddCommand($"oryx create-script -appPath {appDir} -bindPort {ContainerPort}") .AddCommand(DefaultStartupFilePath) .ToString(); await EndToEndTestHelper.BuildRunAndAssertAppAsync( appName, _output, new List <DockerVolume> { volume }, Settings.BuildImageName, "oryx", new[] { "build", appDir, "-l", "php", "--language-version", phpVersion }, _imageHelper.GetRuntimeImage("php", phpVersion), GetEnvironmentVariables(), ContainerPort, "/bin/bash", new[] { "-c", script }, async (hostPort) => { var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/"); Assert.Equal( DbContainerFixtureBase.GetSampleDataAsJson(), data.Trim(), ignoreLineEndingDifferences: true, ignoreWhiteSpaceDifferences: true); }); }