我有运行在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] 删除。
我来说两句