小编Ada*_* M.的帖子

为什么 go.sum 包含这么多旧包

我一直在进行一组项目,处理更新依赖项,但有一件事我没有明确的答案,这就是为什么生成的总和文件列出了每个依赖项的许多旧版本。

在我们的项目中,我们引入了一些漏洞,尽管 golang.org/x/crypto 我们通过replace带有安全修复程序的包发布指令解决了旧版本的问题,但这感觉不太正确,可能会将我们锁定在不安全的包版本中。

现在我已经更新了依赖于旧版本的包golang.org/x/crypto,并使用替换指令循环回包并尝试更新,但我仍然看到列出了旧的包。

我想知道这对我们的项目意味着什么,以及我如何才能找到为什么首先包含这些内容?

运行一个简单的命令 go mod why -m golang.org/x/crypto 表明唯一依赖的项目 golang.org/x/crypto 是我更新的项目。

go go-modules

23
推荐指数
1
解决办法
2万
查看次数

为什么在 Visual Studio 中结束调试后我的 docker 容器 ASP.NET 核心应用程序不可用

我的标题解释了其中的大部分内容,但想了解为什么我在 Visual Studio 中调试时可以访问https://localhost:32770/并获取我的 API 端点,但是当我结束调试时它变得不可用。

我目前正忙着花几天的时间来研究 Docker 和 Kubernetes,这让我有点困惑,我真的很想填补我的知识空白。

容器在创建后保持运行,那么发生了什么变化?

我注意到这是在构建开始时运行的:

docker exec -i 0f855d9b4c801bf8c52da48e6dd02ffdf0fe7242fde22fb9a221616e4b2900f9 /bin/sh \
-c "if PID=$(pidof dotnet); then kill $PID; fi"
Run Code Online (Sandbox Code Playgroud)

但我没有看到在运行 dockerfile 和一切之前调试结束后会发生什么变化。我不明白命令中的 -c,但我明白引号中的脚本在容器中运行后遵循docker exec语法docker exec [OPTIONS] CONTAINER COMMAND [ARG...]. 似乎这个脚本在创建新代码之前杀死了现有的代码构建。

这是在运行 dockerfile 之前运行的

docker build -f "F:\Dev\API_files\API_name\Dockerfile" 
--force-rm 
-t API_name:dev 
--target base  
--label "com.microsoft.created-by=visual-studio" 
--label "com.microsoft.visual-studio.project-name=API_name" "F:\Dev\API_name"
Run Code Online (Sandbox Code Playgroud)

我在这里没有看到任何会改变容器运行方式的东西,在这个实例中 rm '在构建后删除中间容器(默认为真)'根据 docker build --help

接下来运行 dockerfile,它几乎是 ASP.NET 核心应用程序的默认文件,它具有

EXPOSE 80
EXPOSE 443
Run Code Online (Sandbox Code Playgroud)

其余的都是简单的构建步骤。毕竟,我似乎无法找到太多关于正在发生的事情的迹象。我的猜测是它与 IIS Express 有关,但实际上我不太了解它发生了什么以及 Visual Studios …

visual-studio iis-express docker dockerfile asp.net-core

5
推荐指数
1
解决办法
357
查看次数