VS2019启用Docker支持的坑

摘要:
解决方案1:将生成的Dockerfile文件移动到上层目录,并执行dockerbuild tmywebapp。在上层目录中。
  • 使用vs2019创建ASP.Net Core Web应用程序:
    VS2019启用Docker支持的坑第1张
  • 右侧高级选项中有一项启用Docker支持,勾选后vs会自动帮我们创建Dockerfile:
    VS2019启用Docker支持的坑第2张
  • 看一下Dockerfile的内容:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

乍一看好像很完美。。。

  • 下面用docker build一下,通常的做法是:
    docker build -t mywebapp .
    VS2019启用Docker支持的坑第3张
    然后进行到第6步就报错了:COPY failed: stat /var/lib/docker/tmp/docker-builder893785636/WebApplication1/WebApplication1.csproj: no such file or directory
    没有这样的文件或目录,仔细一看COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]确实不对,WebApplication1这级目录是多余的。
    VS2019启用Docker支持的坑第4张
    然后我试着修改Dockerfile文件,最后怎么改都没能成功。。。
解决方案一:
  • 把生成的Dockerfile文件移到上一级目录,在上一级目录执行docker build -t mywebapp .就可以了。
    VS2019启用Docker支持的坑第5张
    VS2019启用Docker支持的坑第6张
    VS2019启用Docker支持的坑第7张
解决方案二:
  • 在上一级目录执行docker build并使用-f参数指定Dockerfile文件位置:docker build -t mywebapp1 -f ./WebApplication1/Dockerfile .
    VS2019启用Docker支持的坑第8张
    VS2019启用Docker支持的坑第9张
解决方案三:
  • 直接使用vs2019来启动,将项目设置为Docker启动:
    VS2019启用Docker支持的坑第10张
    Ctrl+F5即可启动:
    VS2019启用Docker支持的坑第11张
    但是由于网络等原因,可能又会遇到其他问题。。。

免责声明:文章转载自《VS2019启用Docker支持的坑》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jaxb处理泛型,转化成xml字符串013.PGSQL-查看sql正在运行的进程、查看表是否被锁、解锁表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

docker 修改 mysql 5.7 sql_mode

docker exec -ti {容器ID}/bin/bash 进入容器 apt-get install vim 安装vim 找到 vim /etc/mysql/my.cnf 在 [mysqld] 下添加 sql_mode={你想要的sql_mode,可以先用 select @@sql_mode 查询出现有的sql_mode 去掉你不想要的,然后复制进来即...

第一课:docker基本知识

1.什么是docker 使用最广泛的开源容器引擎 一种操作系统级的虚拟化技术 依赖于linux内核特性:namespace和cgroups 一种简单的应用程序打包工具 2.docker的设计目标 提供简单的应用程序打包工具 开发人员和运维人员职责逻辑分离 多环境保持一致性 3.docker的基本组成 docker client 客户端 docker d...

虚拟机搭建Kubespere3.0(详细)

前言:不断学习就是程序员的宿命。 相对于rancher,我个人更倾向于kubespere,因为它界面确实比较吸引我,废话不多扯,下面开始吧 1.环境准备 1.前置要求 虚拟机:centos7.6~7.8!!! 以下:https://kuboard.cn/install/install-k8s.html#%E6%A3%80%E6%9F%A5-centos-...

Traefik-v2.x快速入门

一、概述 traefik与nginx一样,是一款优秀的反向代理工具,或者叫Edge Router。至于使用它的原因则基于以下几点 无须重启即可更新配置 自动的服务发现与负载均衡 与docker的完美集成,基于container label的配置 漂亮的dashboard界面 metrics的支持,对prometheus和k8s的集成 接下来讲一下它的...

一不注意,在Unity3D中DllImport 引起的Bug.

单要说这个Bug是很简单,但是得从头说起。  一些大型的网络游戏,或者加载比较多的一些场景时,如果要等待所有模型,贴图等各种资源文件加载完毕才能执行游戏,对用户将会是一个很头大的事情。所以就需要用到动态加载,即AssetBundles。 引用自:http://bbs.9ria.com/thread-214663-1-1.html AssetBundle...

搭建企业内部DNS服务器,docker 部署内部 dnsmasq

获取镜像 docker pull jpillora/dnsmasq 配置域名 # http://oss.segetech.com/intra/srv/dnsmasq.conf #log all dns queries log-queries #dont use hosts nameservers no-resolv #use google as def...