当前位置: 首页 > 面试题库 >

Dockerfile无法看到本地文件或私有nuget服务器

国兴文
2023-03-14
问题内容

我正在尝试启动有关容器技术的.net核心Web api。使用泊坞窗。

环境= Windows 10,Visual Studio

Docker版本:

客户:

版本:17.12.0-ce

API版本:1.35

Go版本:go1.9.2

Git提交:c97c6d6

建成:2017年12月27日星期三20:05:22

操作系统/ Arch:Windows / amd64

服务器:

发动机:

版本:17.12.0-ce

API版本:1.35(最低版本1.12)

Go版本:go1.9.2

Git提交:c97c6d6

建成:2017年12月27日星期三20:12:29

操作系统/ Arch:linux / amd64

实验性:真实

我的Nuget.Config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>


<add key="nuget.org" value="https://api.nuget.org/v3/index.json" 
protocolVersion="3" />


<add key="Private" 
value="http://My_Private_Nuget_Server" />


</packageSources>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<bindingRedirects>
<add key="skip" value="False" />
</bindingRedirects>
<packageManagement>
<add key="format" value="0" />
<add key="disabled" value="True" />
</packageManagement>


<apikeys>
<add key="https://www.nuget.org" value="Some_Long_Value" />
</apikeys>


<disabledPackageSources />
</configuration>

我的Dockerfile:

FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "MailAlertWebApiWithEF.dll"]

我在Windows 10计算机上使用Linux容器。我在Visual Studio 17上有.net核心项目。当ı添加docker支持并从VS
17运行时,一切正常。API站立在容器中。但是当我关闭VS时不起作用。但是当我尝试自定义我的dockerfile以使我的图像和容器独立于VS时。由于私有导致错误.dll

在我的项目中,我有一个。dll
从我的私有nuget服务器。当没有我的私人ı尝试时,.dll可以创建图像。但是我需要那个.dll。Docker给我这个错误:

MailAlertWebApiWithEF.csproj:错误NU1101:无法找到软件包WebApi.Utils。在源中不存在具有此id的软件包:nuget.org

我搜索了此错误。问题的源似乎是Nuget.Config文件。但是对我来说似乎很好,因为我可以在那里看到我的私有nuget服务器。当我在Linux机器上搜索解决方案箭头时,总是使用Windows。

1-)所以如果我可以从VS
17开始我的项目,那么我的nuget.config文件格式正确。它可以看到我的私有nuget服务器。对?那为什么码头工人看不到它呢?

请帮忙


问题答案:

为了使dotnet在容器中运行的命令能够找到您的自定义供稿,nuget.config还必须将文件复制到容器中。

为此,将nuget.config带有私人提要的文件添加到项目文件夹,并添加COPY将此文件复制到容器的其他步骤。

示例(Dockerfile):

WORKDIR ...
COPY NuGet.Config /
COPY ... ...


 类似资料:
  • 问题:我创建了一个服务帐户来与我的组织的Google Drive交互 = 你认为我缺少什么级别的权限? 可能与本文档中的以下图片有关? https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority 我已经经历过的步骤.. 1) 我创建了一个具有域范围委托和项目编辑状态的服务帐户。

  • 无法连接到服务器:没有这样的文件或目录,服务器是否在本地运行并接受Unix域套接字“/var/run/PostgreSQL/.s.pgsql.5432”上的连接? postgres状态已下降 $grep-h'^port'/etc/PostgreSQL/*/main/PostgreSQL L.conf/etc/PostgreSQL/11/main/PostgreSQL L.conf:port=543

  • 我需要在RAD 6.0中创建一个新的服务器配置文件。我面临的问题是,在转到Windows->Preferences->server->WebSphere后,我无法看到“WebSphereV6.0本地服务器配置文件创建”部分。 会不会是安装的问题,因为JVM被终止了,安装时Exit CODE=1错误,我再次启动RAD时又出现了这个错误。到现在为止,我可以通过启动eclipse而不是RAD ie来摆脱

  • 错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地MySQL服务器(2“没有这样的文件或目录”) 我得用ctl-c来摆脱剧本。 套接字在/etc/mysql/debian.cnf中设置为/var/run/mysqld/mysqld.sock。在/etc/mysql/mariadb.conf.d/50-server.cnf中也设置为/var

  • 我刚刚把pgAdmin更新到4.23版,PostgreSQL更新到12版。我还删除了所有以前的数据库和pgAdmin安装。所以应该是全新安装(我也清理了之前版本的所有残余)。 现在,当我尝试连接到本地数据库服务器时,我甚至在键入密码之前就得到了这个:

  • 我怎么解决这个?我没看到什么? ps:包含两个PostgreSQL.plist文件。我不确定这是否相关。 我尝试了以下方法,得到了如下结果。 确保要运行的PostgreSQL副本的路径条目位于OS ;X系统的PostgreSQL的路径之前。 这是一个核心需求,它决定了哪个PostgreSQL可以运行,而且我被告知是导致这些问题的原因。