有这样一种情况:你需要开发一个容器,里面会是下一个过程——下载视频并保存在主机上。目前,下载进度是这样的,但视频存储在容器内。我重新阅读了一堆关于该指令的手册,VOLUME但可惜没有成功(容器内没有这样的目录/卷)。
我的码头文件:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
RUN apt update && \
apt -y upgrade && \
apt-get --assume-yes install python3 && \
whereis python3 && \
ln -s /usr/bin/python3 /usr/bin/python && \
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl && \
chmod a+rx /usr/local/bin/youtube-dl
WORKDIR /app
EXPOSE 80
EXPOSE 443
VOLUME /video_data
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["YDL.Server/YDL.Server.csproj", "YDL.Server/"]
RUN dotnet restore "YDL.Server/YDL.Server.csproj"
COPY . .
WORKDIR "/src/YDL.Server"
RUN dotnet build "YDL.Server.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "YDL.Server.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "YDL.Server.dll"]
对于我使用的开发VS2019 DockerDesctop OS Windows10
我是容器化的初学者 - 我会很高兴得到压倒性的帮助..
VOLUMEcDockerfile在构建镜像阶段工作,不描述与特定启动主机的关系。与or
docker run选项一起使用:-v ...docker-compose up -ddocker-compose.yml这可能需要您设置正确的 DockerDesktop 访问磁盘 (
c:)。但是如果数据被另一个容器进一步处理,使用命名卷(不与 Windows 共享)可能是有意义的
- video_data:/video_data,因为 Windows 中的 fs 可能会明显变慢。