Asp.net Docker没有';不要复制新图像

Asp.net Docker没有';不要复制新图像,asp.net,docker,asp.net-core,docker-compose,Asp.net,Docker,Asp.net Core,Docker Compose,关于Docker我有个问题 部署新版本的应用程序映像时,不会复制已添加到wwwroot文件夹中的images文件夹中的映像 我的Dockerfile如下所示: FROM microsoft/aspnetcore-build:1.0-projectjson WORKDIR /app-src COPY . . RUN dotnet restore RUN dotnet publish src/Test -o /app EXPOSE 5000 WORKDIR /app ENTRYPOINT [&

关于Docker我有个问题

部署新版本的应用程序映像时,不会复制已添加到wwwroot文件夹中的images文件夹中的映像

我的Dockerfile如下所示:

FROM microsoft/aspnetcore-build:1.0-projectjson

WORKDIR /app-src
COPY . .

RUN dotnet restore
RUN dotnet publish src/Test -o /app

EXPOSE 5000
WORKDIR /app
ENTRYPOINT ["dotnet", "Test.dll"]
还有我的码头工人:

version: '3.8'
services:
   app:
    image: <dockeruser>/<imagename>:<tag>
    links:
      - db
    environment:
      ConnectionStrings__Dataconnection: "Host=db;Username=Username;Password=Password;Database=db"
    ports:
      - "5000:5000"
    volumes:
      - ~/data/images:/app/wwwroot/images
   db:
    image: postgres:9.5
    ports:
      - "31337:5432"
    volumes:
      - ~/data/db:/var/lib/postgresql/data/pgdata
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: db
      PGDATA: /var/lib/postgresql/data/pgdata
版本:“3.8”
服务:
应用程序:
图片:/:
链接:
-分贝
环境:
ConnectionString\uuuu数据连接:“主机=db;用户名=Username;密码=Password;数据库=db”
端口:
- "5000:5000"
卷数:
-~/data/images:/app/wwwroot/images
db:
图片:博士后:9.5
端口:
- "31337:5432"
卷数:
-~/data/db:/var/lib/postgresql/data/pgdata
环境:
POSTGRES_用户:用户
POSTGRES_密码:PASSWORD
POSTGRES_DB:DB
PGDATA:/var/lib/postgresql/data/PGDATA
我当前版本的docker是:
Docker版本18.09.7,构建2d0083d
和Docker compose
Docker compose版本1.26.2,构建eefe0d31
docker compose.yml中的docker compose版本与docker version 17.03.0-ce、build 60ccb22和docker compose version
docker compose version 1.9.0、build 2585387中的文件完全相同(docker compose版本除外)

我将我的新图像存储在我的repos wwwroot/images文件夹中,然后将它们推送到repo,然后dockerhub自动从新提交构建一个图像。然后在服务器上,我拉取新的docker映像并运行
docker compose down-v
命令,然后运行
docker compose up-d
,但之后该映像在应用程序中不可用


免责声明:这是一个我已经超越的项目,我知道一些非常旧的软件版本。

您的映像可能在您的容器映像中,但由于您正在进行绑定装载,服务器的“~/data/images”目录中的任何内容基本上都将“覆盖/替换”创建容器时,图像中的内容

尝试从应用程序服务中删除卷,基本上删除以下内容:

卷数: -~/data/images:/app/wwwroot/images


您可以尝试的另一件事是手动将图像复制到服务器上的“~/data/images”目录。

删除
~
/data/db
前面的
,如果它与compose file位于同一目录中,请使用
/data/db
。否则,我认为您需要使用完整路径。
卷:
隐藏图像的内容以及主机系统上的相应内容。在容器启动时,这实际上是对容器的“推送”,而不是相反的方式。如果您更新了图像中的内容,请删除隐藏它的绑定挂载。我想我有一些关于绑定和挂载的阅读资料要做。不管怎样,它都奏效了。非常感谢,先生!编辑:从应用程序服务中删除卷才有效。