docker-compose无法正确绑定卷

奥列格

我有运行在Docker容器中的.NET Core 3.0应用程序。我想将应用程序日志存储在容器外部,因此我尝试配置docker-compose文件以将应用程序日志文件夹/ app / log从容器安装到主机上的/ var / log路径。这是我的docker-compose文件:

version: '3.4'

services:
  shikimoritelegrambot:
    image: ${DOCKER_REGISTRY}shikimoritelegrambot
    build:
      context: .
      dockerfile: ShikimoriTelegramBot/Dockerfile
    volumes:
      - /var/log:/app/log

这是我的项目的DOCKERFILE:

FROM mcr.microsoft.com/dotnet/core/runtime:3.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
WORKDIR /src
COPY ShikimoriTelegramBot/ShikimoriTelegramBot.csproj ShikimoriTelegramBot/
RUN dotnet restore ShikimoriTelegramBot/ShikimoriTelegramBot.csproj
COPY . .
WORKDIR /src/ShikimoriTelegramBot
RUN dotnet build ShikimoriTelegramBot.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish ShikimoriTelegramBot.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ShikimoriTelegramBot.dll"]

这是代码到我的存储库的链接:https : //github.com/otsomkalov/ShikimoriTelegramBot

这是docker inspect命令的输出https : //pastebin.com/Dr1iMgPF

实际结果:我可以在/ app / log容器文件夹中看到我的日志。在主机的/ var / log文件夹中,缺少日志。

预期结果:我可以在主机的/ var / log文件夹中找到我的日志文件。

尼克·朗德

您需要使用:

docker-compose run

代替docker run

区别在于docker-compose会自动在compose文件中设置卷。本质上,它是docker cli的包装。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章