Docker不复制新映像

时间:2020-08-27 18:18:12

标签: 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 ["dotnet", "Test.dll"]

还有我的docker-compose:

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

我当前的docker版本是: Docker version 18.09.7, build 2d0083d和docker-compose docker-compose version 1.26.2, build eefe0d31 完全相同的文件(在docker-compose.yml中将docker-compose版本设置为2除外)以前在docker版本Docker version 17.03.0-ce, build 60ccb22和docker-compose版本docker-compose version 1.9.0, build 2585387

上工作

我将新映像存储在我的存储库wwwroot / images文件夹中,然后将其推送到存储库,然后dockerhub会根据新提交自动构建映像。然后,在服务器上,我拉出新的docker-image并运行docker-compose down -v命令,然后运行docker-compose up -d,但此后图像在应用程序中不可用。

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

1 个答案:

答案 0 :(得分:1)

您的映像可能在容器映像中,但是由于您正在执行绑定安装,因此服务器的“〜/ data / images”目录中的所有内容基本上都会“覆盖/替换”容器创建时映像中的内容。

尝试从应用服务中删除该卷,基本上将其删除:

卷: -〜/ data / images:/ app / wwwroot / images

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