- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我为 Visual Studio 2017 (V15.7.3) 安装了 AWS 工具包,并创建了一个新的空 Asp.Net core 2.1 项目,该项目具有 API 模板和 Linux docker 支持。我可以在 Visual Studio 中运行它。
加载项目后的 Visual Studio Docker 输出
========== Preparing Containers ==========Getting Docker containers ready...docker-compose -f "C:\work\Strats\docker-compose.yml" -f "C:\work\Strats\docker-compose.override.yml" -f "C:\work\Strats\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose607729401690719332 --no-ansi configThe DOCKER_REGISTRY variable is not set. Defaulting to a blank string.services: processfiles: build: context: C:\work\Strats dockerfile: ProcessFiles/Dockerfile target: base entrypoint: tail -f /dev/null environment: ASPNETCORE_ENVIRONMENT: Development ASPNETCORE_HTTPS_PORT: '44347' ASPNETCORE_URLS: https://+:443;http://+:80 DOTNET_USE_POLLING_FILE_WATCHER: '1' NUGET_FALLBACK_PACKAGES: /root/.nuget/fallbackpackages image: processfiles:dev labels: com.microsoft.visualstudio.debuggee.arguments: ' --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages bin/Debug/netcoreapp2.1/ProcessFiles.dll' com.microsoft.visualstudio.debuggee.killprogram: /bin/bash -c "if PID=$$(pidof -x dotnet); then kill $$PID; fi" com.microsoft.visualstudio.debuggee.program: dotnet com.microsoft.visualstudio.debuggee.workingdirectory: /app ports: - published: 49971 target: 80 - published: 44347 target: 443 volumes: - C:\work\Strats\ProcessFiles:/app:rw - C:\Users\...\vsdbg\vs2017u5:/remote_debugger:ro - C:\Users\...\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro - C:\Users\...\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro - C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages:ro - C:\Users\...\.nuget\packages:/root/.nuget/packages:roversion: '3.4'docker ps --filter "status=running" --filter "name=dockercompose607729401690719332_processfiles_" --format {{.ID}} -n 1docker-compose -f "C:\work\Strats\docker-compose.yml" -f "C:\work\Strats\docker-compose.override.yml" -f "C:\work\Strats\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose607729401690719332 --no-ansi build The DOCKER_REGISTRY variable is not set. Defaulting to a blank string.Building processfilesStep 1/4 : FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base ---> 04aae08f15c5Step 2/4 : WORKDIR /app ---> Using cache ---> 135955e04284Step 3/4 : EXPOSE 49971 ---> Using cache ---> 2e1bb95e0d70Step 4/4 : EXPOSE 44347 ---> Using cache ---> 89dc3708552dSuccessfully built 89dc3708552dSuccessfully tagged processfiles:devdocker-compose -f "C:\work\Strats\docker-compose.yml" -f "C:\work\Strats\docker-compose.override.yml" -f "C:\work\Strats\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose607729401690719332 --no-ansi up -d --no-build --force-recreate --remove-orphansThe DOCKER_REGISTRY variable is not set. Defaulting to a blank string.Creating network "dockercompose607729401690719332_default" with the default driverCreating dockercompose607729401690719332_processfiles_1 ... Creating dockercompose607729401690719332_processfiles_1 ... doneDone! Docker containers are ready.
Docker output when running in Visual Studio
========== Debugging ==========docker ps --filter "status=running" --filter "name=dockercompose607729401690719332_processfiles_" --format {{.ID}} -n 11cad14cb758cLaunching https://localhost:44347/api/values ...
Visual studio Build output
1>------ Build started: Project: docker-compose, Configuration: Debug Any CPU ------1>docker ps --filter "status=running" --filter "name=dockercompose607729401690719332_processfiles_" --format {{.ID}} -n 11>1cad14cb758c1>docker exec -i 1cad14cb758c /bin/bash -c "if PID=$(pidof -x dotnet); then kill $PID; fi"1>C:\work\Strats\ProcessFiles\ProcessFiles.csproj : warning NU1701: Package 'System.Linq.Queryable 4.0.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.1'. This package may not be fully compatible with your project.1>ProcessFiles -> C:\work\Strats\ProcessFiles\bin\Debug\netcoreapp2.1\ProcessFiles.dll1>Done building project "ProcessFiles.csproj".1>docker-compose -f "C:\work\Strats\docker-compose.yml" -f "C:\work\Strats\docker-compose.override.yml" -f "C:\work\Strats\obj\Docker\docker-compose.vs.debug.g.yml" -p dockercompose607729401690719332 --no-ansi up -d1>The DOCKER_REGISTRY variable is not set. Defaulting to a blank string.1>dockercompose607729401690719332_processfiles_1 is up-to-date========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
So it runs and shows the default value api sample in browser.
Now I right click the project and click "Publish container to AWS..." after a fix on the Dockerfile
(Docker for Windows building added prefix `/var/lib/docker/tmp/` for COPY?). However, it failed with the following messages in AWS message box?
Inspecting Dockerfile to figure how to build project and docker image... Skip building project since it is done as part of DockerfileExecuting docker build... invoking 'docker build', working folder 'C:\work\Strats\ProcessFiles, docker file C:\work\Strats\ProcessFiles\Dockerfile, image name processfiles:latest'... docker build: Sending build context to Docker daemon 1.176MB... docker build: Step 1/17 : FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base... docker build: ---> 04aae08f15c5... docker build: Step 2/17 : WORKDIR /app... docker build: ---> Using cache... docker build: ---> 135955e04284... docker build: Step 3/17 : EXPOSE 49971... docker build: ---> Using cache... docker build: ---> 2e1bb95e0d70... docker build: Step 4/17 : EXPOSE 44347... docker build: ---> Using cache... docker build: ---> 89dc3708552d... docker build: Step 5/17 : FROM microsoft/dotnet:2.1-sdk AS build... docker build: ---> 7c3e298d40ac... docker build: Step 6/17 : WORKDIR /src... docker build: ---> Using cache... docker build: ---> 6b6446592420... docker build: Step 7/17 : COPY ProcessFiles.csproj ProcessFiles/... docker build: ---> 024a84501cff... docker build: Step 8/17 : RUN dotnet restore ProcessFiles/ProcessFiles.csproj... docker build: ---> Running in 1ef41c99d3bc... docker build: Restoring packages for /src/ProcessFiles/ProcessFiles.csproj...... docker build: Generating MSBuild file /src/ProcessFiles/obj/ProcessFiles.csproj.nuget.g.props.... docker build: Generating MSBuild file /src/ProcessFiles/obj/ProcessFiles.csproj.nuget.g.targets.... docker build: Restore completed in 770.82 ms for /src/ProcessFiles/ProcessFiles.csproj.... docker build: Removing intermediate container 1ef41c99d3bc... docker build: ---> 276efaf02bd4... docker build: Step 9/17 : COPY . .... docker build: ---> 128814476275... docker build: Step 10/17 : WORKDIR /src/ProcessFiles... docker build: Removing intermediate container 004eb873b480... docker build: ---> 8c1741062d87... docker build: Step 11/17 : RUN dotnet build ProcessFiles.csproj -c Release -o /app... docker build: ---> Running in fd25517b7941... docker build: Microsoft (R) Build Engine version 15.7.179.6572 for .NET Core... docker build: Copyright (C) Microsoft Corporation. All rights reserved.... docker build: Restore completed in 55.9 ms for /src/ProcessFiles/ProcessFiles.csproj.... docker build: CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/ProcessFiles/ProcessFiles.csproj]... docker build: Build FAILED.... docker build: CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/ProcessFiles/ProcessFiles.csproj]... docker build: 0 Warning(s)... docker build: 1 Error(s)... docker build: Time Elapsed 00:00:02.56... docker build: The command '/bin/sh -c dotnet build ProcessFiles.csproj -c Release -o /app' returned a non-zero code: 1Error executing "docker build"Attempting to clean up any ELB resources created for the failed deploymentUnknown error publishing container to AWS
Here is the main method created by VS.
namespace ProcessFiles
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}
Dockerfile
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 49971
EXPOSE 44347
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ProcessFiles.csproj ProcessFiles/
RUN dotnet restore ProcessFiles/ProcessFiles.csproj
COPY . .
WORKDIR /src/ProcessFiles
RUN dotnet build ProcessFiles.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish ProcessFiles.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ProcessFiles.dll"]
最佳答案
构建阶段的路径很不稳定。您的项目文件正在复制到子文件夹 /src/ProcessFiles
,但源文件正在复制到 /src
。在复制之前设置 WORKDIR
应该可以让它们到达正确的位置。
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ProcessFiles.csproj ProcessFiles/
RUN dotnet restore ProcessFiles/ProcessFiles.csproj
WORKDIR /src/ProcessFiles
COPY . .
RUN dotnet build ProcessFiles.csproj -c Release -o /app
关于c# - Docker 在 VS 中运行,但在发布到 AWS 时出错?错误 CS5001 : Program does not contain a static 'Main' method suitable for an entry point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50863823/
我们正在使用 VSTS 构建和发布通过 Xamarin 创建的 iOS 和 Android 应用程序。通过 VSTS 将 Android 应用发布到商店相对简单。有人可以指导我或提供一些如何通过 VS
我一直在研究 Spring Social Facebook 的 publish(objectId, connectionName, data) API ,但不确定此 API 的用法(遗憾的是,由于缺少
我正在使用 django viewflow 创建一个发布流程: 用户创建对象 它进入审核流程,其状态为待处理(公众不可见) 经过审核和批准后,就会发布并公开可见。 如果用户编辑同一实体,则会再次进入审
我正在尝试进行 API 调用,并且 API 需要格式为 XML: Security GetSessionInfo 999999999999 0 2 {
我已经查看了所有 StackOverflow,但没有找到适合我的案例的解决方案我有 405 HttpStatusCode 调用 API/Regions/Create 操作这是我的 baseContro
如果我切换到新版本的SpringBoot,我在启动应用程序时会得到上面的错误信息。这是为什么? 最美好的祝愿史蒂文 pom.xml 4.0.0 de.xyz.microservice spring
我有一个场景,页面导航是从一个域到另一个域完成的。例如,导航是从 http://www.foo.com到 http://www.bar.com在 JavaScript 中单击按钮 重定向时,我需要将用
这半年来一直深耕包头,这个城市比较不错,但是推进项目的难度确实挺大的。与开发产品相比,后者更省心。但是光研发产品,没有项目
我正在阅读有关 Github 版本 的信息,它似乎很适合您的项目。因为我们需要决定将哪些功能用于生产,哪些不用于。 我无法理解的部分是,master 和 release 分支如何在其中发挥作用。 Sh
我将一些代码推送到远程存储库,然后在 GitHub 上创建了第一个版本,并将其命名为 'v0.0.1'。 GitHub 现在显示我现在有一个版本,并且还在“标签”中显示我有一个标签 “v0.0.1”。
如果我有一个具有以下文件/文件夹结构的 GitHub 存储库 github.com/@product/template: /build /fileA /fileB /src /genera
我有一个 Maven 多模块项目。 当代码开发完成后,我们想在 Jenkins 中编写一个分支构建作业,它分支代码,增加主干中的 pom 版本,并删除 -SNAPSHOT 来自分支中的 pom 版本。
我有一个非常大的集合(约 40000 个文档,包含约 20-25 个字段,包括包含一组约 500 个项目的数组字段)和约 2000 个订阅者(他们现在只是机器人)。 因此,当用户订阅整个集合(不包括服
如果我正在使用消息队列构建一个包含数十个发布者/订阅者的系统,那么我似乎有一些网络配置选项: 我可以拥有一个所有机器都使用的集群代理 - 每台机器都没有本地队列 我可以在每台机器上本地安装代理,并使用
我正在使用 Flash Develop,并且创建了一个 ActionScript 3.0 项目。它启动并读取一个 xml 文件,其中包含图像的 url。我已将 url 保留在与 swf 相同的文件夹中
如果我在一个句子中使用 alloc 和 retain 声明一个 NSArray 那么我应该释放 NSArray 对象两次(即[arrayObject release] 2次)? 最佳答案 如果您在同一
我正在尝试在 Node 中实现发布/订阅模式,但不使用 Redis。功能应该是相同的;您可以发布到 channel ,订阅 channel 并收听数据(如果您已订阅);以下是 Redis 功能: pu
编辑:这个问题、一些答案和一些评论,包含很多错误信息。见 how Meteor collections, publications and subscriptions work准确理解发布和订阅同一服
我正在开发一款 DirectX 游戏,我发现在发布版本中我的平均帧速率为 170fps,但是在调试版本中我的帧速率约为 20fps。 我想知道发布和调试版本之间的巨大差异是否正常,特别是因为在调试中我
是否有办法回滚 Windows Azure 网站和 SQL 部署/发布? 我发布了一个网站,现在它导致了很多错误,我想回到之前的状态并进一步处理代码。 这可能吗? 最佳答案 如果您使用 Git 或 T
我是一名优秀的程序员,十分优秀!