diff --git a/Dockerfile b/Dockerfile index d13b4bf..f6929df 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,8 +34,14 @@ ENV TIME_ZONE=Asia/Shanghai COPY --from=publish /app/publish . COPY ./docker/entry.sh ./docker/crontab /app/ RUN ln -fs /usr/share/zoneinfo/$TIME_ZONE /etc/localtime \ - && echo $TIME_ZONE > /etc/timezone \ - && apt-get update \ - && apt-get install -y cron tzdata \ + && echo $TIME_ZONE > /etc/timezone +RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak \ + && sed -i 's/deb.debian.org/mirrors.163.com/g' /etc/apt/sources.list \ + && sed -i 's/security.debian.org/mirrors.163.com/g' /etc/apt/sources.list \ + && apt-get clean +RUN apt-get update \ + && apt-get install -y cron tzdata tofrodos \ && apt-get clean +RUN fromdos /app/entry.sh \ + && fromdos /app/crontab ENTRYPOINT ["/bin/bash", "-c", "/app/entry.sh"] diff --git a/docker/entry.sh b/docker/entry.sh index 6a5f043..671213a 100644 --- a/docker/entry.sh +++ b/docker/entry.sh @@ -4,24 +4,30 @@ set -e # https://stackoverflow.com/questions/27771781/how-can-i-access-docker-set-environment-variables-from-a-cron-job echo "[step 1/4]导入环境变量" printenv | grep -v "no_proxy" > /etc/environment +echo "=>完成" echo "[step 2/4]配置cron定时任务" myarray=(`find /app -maxdepth 1 -name "custom_crontab"`) if [ ${#myarray[@]} -gt 0 ]; then - echo "检测到自定义了cron定时任务,使用自定义配置" + echo "=>检测到自定义了cron定时任务,使用自定义配置" cp /app/custom_crontab /etc/cron.d/bilicron else - echo "使用默认cron定时任务配置" + echo "=>使用默认cron定时任务配置" cp /app/crontab /etc/cron.d/bilicron fi +echo "=>完成" echo "[step 3/4]启动定时任务,开启每日定时运行" chmod 0644 /etc/cron.d/bilicron crontab /etc/cron.d/bilicron touch /var/log/cron.log cron +echo "=>完成" echo "[step 4/4]初始启动容器,尝试测试Cookie" -/app/Ray.BiliBiliTool.Console.dll -runTasks=Test -closeConsoleWhenEnd=1 +/app/Ray.BiliBiliTool.Console -runTasks=Test -closeConsoleWhenEnd=1 +echo "=>完成" -tail -f /var/log/cron.log +echo "[step 全部已完成]" + +tail -f /var/log/cron.log # 追踪cron日志 diff --git a/src/Ray.BiliBiliTool.Application/TestAppService.cs b/src/Ray.BiliBiliTool.Application/TestAppService.cs index 862f807..b8c721e 100644 --- a/src/Ray.BiliBiliTool.Application/TestAppService.cs +++ b/src/Ray.BiliBiliTool.Application/TestAppService.cs @@ -1,18 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Ray.BiliBiliTool.Agent.BiliBiliAgent.Dtos; using Ray.BiliBiliTool.Application.Attributes; using Ray.BiliBiliTool.Application.Contracts; -using Ray.BiliBiliTool.Config.Options; using Ray.BiliBiliTool.DomainService.Interfaces; -using Ray.BiliBiliTool.Infrastructure.Enums; namespace Ray.BiliBiliTool.Application { diff --git a/src/Ray.BiliBiliTool.Console/DockerBuild.cmd b/src/Ray.BiliBiliTool.Console/DockerBuild.cmd deleted file mode 100644 index f2570c3..0000000 --- a/src/Ray.BiliBiliTool.Console/DockerBuild.cmd +++ /dev/null @@ -1,8 +0,0 @@ -@echo off - -REM start to build -echo Start to build docker image -@echo on -docker build -t zai7lou/bilibili_tool . -@echo off -pause diff --git a/src/Ray.BiliBiliTool.Console/Dockerfile b/src/Ray.BiliBiliTool.Console/Dockerfile deleted file mode 100644 index 22cb249..0000000 --- a/src/Ray.BiliBiliTool.Console/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. - -FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base -WORKDIR /app - -FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build -WORKDIR /src -COPY ["src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj", "src/Ray.BiliBiliTool.Console/"] -COPY ["src/Ray.BiliBiliTool.DomainService/Ray.BiliBiliTool.DomainService.csproj", "src/Ray.BiliBiliTool.DomainService/"] -COPY ["src/Ray.BiliBiliTool.Config/Ray.BiliBiliTool.Config.csproj", "src/Ray.BiliBiliTool.Config/"] -COPY ["src/Ray.BiliBiliTool.Infrastructure/Ray.BiliBiliTool.Infrastructure.csproj", "src/Ray.BiliBiliTool.Infrastructure/"] -COPY ["src/Ray.BiliBiliTool.Agent/Ray.BiliBiliTool.Agent.csproj", "src/Ray.BiliBiliTool.Agent/"] -COPY ["src/Ray.BiliBiliTool.Application/Ray.BiliBiliTool.Application.csproj", "src/Ray.BiliBiliTool.Application/"] -COPY ["src/Ray.BiliBiliTool.Application.Contracts/Ray.BiliBiliTool.Application.Contracts.csproj", "src/Ray.BiliBiliTool.Application.Contracts/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.CoolPushBatched/Ray.Serilog.Sinks.CoolPushBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.CoolPushBatched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.Batched/Ray.Serilog.Sinks.Batched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.Batched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.TelegramBatched/Ray.Serilog.Sinks.TelegramBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.TelegramBatched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.WorkWeiXinBatched/Ray.Serilog.Sinks.WorkWeiXinBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.WorkWeiXinBatched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.OtherApiBatched/Ray.Serilog.Sinks.OtherApiBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.OtherApiBatched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.DingTalkBatched/Ray.Serilog.Sinks.DingTalkBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.DingTalkBatched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.PushPlusBatched/Ray.Serilog.Sinks.PushPlusBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.PushPlusBatched/"] -COPY ["src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.ServerChanBatched/Ray.Serilog.Sinks.ServerChanBatched.csproj", "src/Ray.Serilog.Sinks/Ray.Serilog.Sinks.ServerChanBatched/"] -RUN dotnet restore "src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj" -COPY . . -WORKDIR "/src/src/Ray.BiliBiliTool.Console" -RUN dotnet build "Ray.BiliBiliTool.Console.csproj" -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish "Ray.BiliBiliTool.Console.csproj" -c Release -o /app/publish - -FROM base AS final -WORKDIR /app -ENV TIME_ZONE=Asia/Shanghai -COPY --from=publish /app/publish . -COPY ../../docker/entry.sh ../../docker/crontab /app/ -RUN ln -fs /usr/share/zoneinfo/$TIME_ZONE /etc/localtime \ - && echo $TIME_ZONE > /etc/timezone \ - && apt-get update \ - && apt-get install -y cron tzdata \ - && apt-get clean -ENTRYPOINT ["/bin/bash", "-c", "/app/entry.sh"] diff --git a/src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj b/src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj index a7ce428..241ea3a 100644 --- a/src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj +++ b/src/Ray.BiliBiliTool.Console/Ray.BiliBiliTool.Console.csproj @@ -56,7 +56,13 @@ - + + + + + + +