相关疑难解决方法(0)

在文件更改时重建Docker容器

为了运行ASP.NET Core应用程序,我生成了一个dockerfile,它构建应用程序并在容器中复制源代码,Git使用Jenkins获取该代码.所以在我的工作区中,我在dockerfile中执行以下操作:

WORKDIR /app
COPY src src
Run Code Online (Sandbox Code Playgroud)

虽然Jenkins使用Git正确更新主机上的文件,但Docker不会将此应用于我的图像.

我建立的基本脚本:

#!/bin/bash
imageName=xx:my-image
containerName=my-container

docker build -t $imageName -f Dockerfile  .

containerRunning=$(docker inspect --format="{{ .State.Running }}" $containerName 2> /dev/null)

if [ "$containerRunning" == "true" ]; then
        docker stop $containerName
        docker start $containerName
else
        docker run -d -p 5000:5000 --name $containerName $imageName
fi
Run Code Online (Sandbox Code Playgroud)

我尝试不同的东西像--rm--no-cache参数docker run,并停止/删除容器之前,新的一个是建立.我不确定我在这里做错了什么.似乎docker正在更新图像,因为调用COPY src src会导致图层ID并且没有缓存调用:

Step 6 : COPY src src
 ---> 382ef210d8fd
Run Code Online (Sandbox Code Playgroud)

更新容器的推荐方法是什么?

我的典型场景是:应用程序在Docker容器中的服务器上运行.现在部分应用程序已更新,例如通过修改文件.现在容器应该运行新版本.Docker似乎建议构建一个新的映像而不是修改现有的容器,所以我认为像我这样重建的一般方法是正确的,但实现中的一些细节必须得到改进.

git jenkins docker dockerfile asp.net-core

56
推荐指数
2
解决办法
7万
查看次数

标签 统计

asp.net-core ×1

docker ×1

dockerfile ×1

git ×1

jenkins ×1