Skip to content

Commit

Permalink
Merge branch 'release/0.4.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
RayWangQvQ committed Feb 11, 2023
2 parents e3f7872 + 048d87b commit 185f4bd
Show file tree
Hide file tree
Showing 7 changed files with 231 additions and 303 deletions.
123 changes: 59 additions & 64 deletions .github/workflows/publish-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
manualTag:
description: 'Manual Tag'
required: true
manualWithLatestTag:
description: 'Manual With Latest Tag'
autoWithLatestTag:
description: 'Auto Add Latest Tag'
required: true
default: true
type: boolean
Expand All @@ -17,82 +17,77 @@ on:
env:
DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD : ${{ secrets.DOCKERHUB_PASSWORD }}
GHCR_USERNAME: ${{ github.repository_owner }}
GHCR_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
DOCKER_IMG_NAME: "zai7lou/bilibili_tool_pro"
GHC_IMG_NAME: "ghcr.io/raywangqvq/bilibili_tool_pro"

jobs:
CheckDockerToken:
PublishImage:
runs-on: ubuntu-latest
outputs:
hasToken: ${{ steps.step_one.outputs.hasToken }}
steps:
- name: Set the value
id: step_one
- name: GetTargetVersion
id: getTargetVersion
run: |
if [ "$DOCKERHUB_PASSWORD" ] ; then
echo "::set-output name=hasToken::true"
else
echo "::set-output name=hasToken::false"
fi
- name: Check the value
run: |
echo ${{ steps.step_one.outputs.hasToken }}
##echo "GITHUB_REF: $GITHUB_REF"
##echo "GITHUB_REF#refs/tags/: ${GITHUB_REF#refs/tags/}"
echo "github.event.release.tag_name: ${{ github.event.release.tag_name }}"
echo "github.event.inputs.manualTag: ${{ github.event.inputs.manualTag }}"
Publish2DockerHub:
runs-on: ubuntu-latest
needs: CheckDockerToken
if: "contains(needs.CheckDockerToken.outputs.hasToken, 'true')"
steps:
-
name: GetRepoTag
id: getRepoTag
run: |
RepoTag=""
TargetVersion=""
if [ "${{ github.event.release.tag_name }}" ] ; then
RepoTag=${{ github.event.release.tag_name }}
TargetVersion=${{ github.event.release.tag_name }}
fi
if [ "${{ github.event.inputs.manualTag }}" ] ; then
RepoTag=${{ github.event.inputs.manualTag }}
TargetVersion=${{ github.event.inputs.manualTag }}
fi
echo "repo tag: $RepoTag"
echo "::set-output name=repoTag::$RepoTag"
-
name: Checkout
uses: actions/checkout@v2
echo "TargetVersion: $TargetVersion"
echo "TargetVersion=$TargetVersion" >> $GITHUB_OUTPUT
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ steps.getRepoTag.outputs.repoTag }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
ref: ${{ steps.getTargetVersion.outputs.TargetVersion }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
-
name: GetDockerTagNames
id: getDockerTags
username: ${{ env.DOCKERHUB_USERNAME }}
password: ${{ env.DOCKERHUB_PASSWORD }}

- name: Log in to ghcr
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ env.GHCR_USERNAME }}
password: ${{ env.GHCR_PASSWORD }}

- name: Generate tags
id: tags
run: |
DOCKER_IMAGE_TAG="zai7lou/bilibili_tool_pro:${{ steps.getRepoTag.outputs.repoTag }}"
DOCKER_IMAGE_LATEST_TAG=",zai7lou/bilibili_tool_pro:latest"
if [ "${{ github.event.inputs.manualTag }}" ] && [ "${{ github.event.inputs.manualWithLatestTag }}" == "false" ] ; then
DOCKER_IMAGE_LATEST_TAG=""
targetVersion="${{ steps.getTargetVersion.outputs.TargetVersion }}"
dockerTagWithVersion="${{ env.DOCKER_IMG_NAME }}:$targetVersion"
ghcrTagWithVersion="${{ env.GHC_IMG_NAME }}:$targetVersion"
dockerTagWithLatest=""
ghcrTagWithLatest=""
if [ "${{ github.event.inputs.autoWithLatestTag }}" == "true" ] ; then
dockerTagWithLatest="$dockerImage:latest"
ghcrTagWithLatest="$ghcrImage:latest"
fi
DOCKER_IMAGE_TAGS=$DOCKER_IMAGE_TAG$DOCKER_IMAGE_LATEST_TAG
echo "docker image tag: $DOCKER_IMAGE_TAGS"
echo "::set-output name=dockerTags::$DOCKER_IMAGE_TAGS"
-
name: Build and push
uses: docker/build-push-action@v2
echo "dockerTagWithVersion=$dockerTagWithVersion" >> $GITHUB_OUTPUT
echo "ghcrTagWithVersion=$ghcrTagWithVersion" >> $GITHUB_OUTPUT
echo "dockerTagWithLatest=$dockerTagWithLatest" >> $GITHUB_OUTPUT
echo "ghcrTagWithLatest=$ghcrTagWithLatest" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.getDockerTags.outputs.dockerTags }}
tags: |
${{ steps.tags.outputs.dockerTagWithVersion }}
${{ steps.tags.outputs.ghcrTagWithVersion }}
${{ steps.tags.outputs.dockerTagWithLatest }}
${{ steps.tags.outputs.ghcrTagWithLatest }}
13 changes: 4 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,3 @@
<!--
* @Author: Ray [email protected]
* @Date: 2023-01-18 23:26:31
* @LastEditors: Ray [email protected]
* @LastEditTime: 2023-02-11 22:42:45
* @FilePath: \BiliBiliToolPro\CHANGELOG.md
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
## 0.0.1
- 重启项目
- 支持[青龙面板](https://github.com/whyour/qinglong)部署
Expand Down Expand Up @@ -91,4 +83,7 @@
## 0.4.1
- Merge PR #418 : Fix search video api's error, thx @catlair
## 0.4.2
- Merfe PRs #425 #426 #427 : enhancement docker things, thx @zclkkk
- Merfe PRs #425 #426 #427 : Enhancement docker things, thx @zclkkk
## 0.4.3
- Feature #419 : Add a auto shell script for install with docker
- Feature #396 : Publish docker image to GitHub pkg
2 changes: 1 addition & 1 deletion common.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<Authors>Ray</Authors>
<Version>0.4.2</Version>
<Version>0.4.3</Version>
<NoWarn>$(NoWarn);CS1591;CS0436</NoWarn>
</PropertyGroup>
</Project>
66 changes: 30 additions & 36 deletions docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,21 @@
<!-- TOC depthFrom:2 -->

- [1. 前期工作](#1-前期工作)
- [1.1. Docker环境](#11-docker环境)
- [1.2. 须知](#12-须知)
- [2. 方式一:Docker Compose(推荐)](#2-方式一docker-compose推荐)
- [2.1. 启动](#21-启动)
- [2.2. 其他命令参考](#22-其他命令参考)
- [3. 方式二:Docker指令](#3-方式二docker指令)
- [3.1. Docker启动](#31-docker启动)
- [3.2. 其他指令参考](#32-其他指令参考)
- [3.3. 使用Watchtower更新容器](#33-使用watchtower更新容器)
- [4. 登录](#4-登录)
- [5. 自己构建镜像(非必须)](#5-自己构建镜像非必须)
- [6. 其他](#6-其他)
- [2. 方式一:一键脚本(推荐)](#2-方式一一键脚本推荐)
- [3. 方式二:手动Docker Compose](#3-方式二手动docker-compose)
- [3.1. 启动](#31-启动)
- [3.2. 其他命令参考](#32-其他命令参考)
- [4. 方式三:手动Docker指令](#4-方式三手动docker指令)
- [4.1. Docker启动](#41-docker启动)
- [4.2. 其他指令参考](#42-其他指令参考)
- [4.3. 使用Watchtower更新容器](#43-使用watchtower更新容器)
- [5. 登录](#5-登录)
- [6. 自己构建镜像(非必须)](#6-自己构建镜像非必须)
- [7. 其他](#7-其他)

<!-- /TOC -->
## 1. 前期工作

### 1.1. Docker环境

请确认已安装了Docker所需环境([Docker](https://docs.docker.com/get-docker/)[Docker Compose](https://docs.docker.com/compose/cli-command/)

Linux一键安装命令:
Expand All @@ -29,26 +26,21 @@ Window系统推荐使用Docker Desktop,官方下载安装包安装。

安装完成后,请执行`docker --version`检查`Docker`是否安装成功,请执行`docker compose version`检查`Docker Compose`是否安装成功。

### 1.2. 须知

- Docker有两种部署方式:使用`Docker Compose`或使用docker指令,选择其中一种即可
## 2. 方式一:一键脚本(推荐)

- 以下章节,凡设计到下载GitHub文件的,如`wget https://raw.githubusercontent.com...`,需要有良好的互联网环境,如果是“局域网”,可以在地址前添加`https://ghproxy.com/`,比如更改为`wget https://ghproxy.com/https://raw.githubusercontent.com...`
仅支持linux系统

- 每次容器启动会去跑一遍 Test 任务,用于测试 Cookie ,其他任务由设定的Cron来指定定时触发。

- 想手动运行某任务的话,[查看功能任务参数](https://github.com/RayWangQvQ/BiliBiliToolPro/tree/develop#2-功能任务说明) 请进入容器后输入命令来启动执行。
```
wget "https://ghproxy.com/https://raw.githubusercontent.com/RayWangQvQ/BiliBiliToolPro/feature/docker-workflow/docker/install.sh" && chmod +x insatll.sh && install.sh
```

## 2. 方式一:Docker Compose(推荐)
## 3. 方式二:手动Docker Compose

### 2.1. 启动
### 3.1. 启动

```
# 创建目录
mkdir bili
cd bili
docker pull zai7lou/bilibili_tool_pro
mkdir bili && cd bili
# 下载
wget https://raw.githubusercontent.com/RayWangQvQ/BiliBiliToolPro/main/src/Ray.BiliBiliTool.Console/appsettings.json
Expand All @@ -71,7 +63,7 @@ bili
└── docker-compose.yml
```

### 2.2. 其他命令参考
### 3.2. 其他命令参考

```
# 启动 docker-compose
Expand All @@ -90,9 +82,9 @@ docker exec -it bili /bin/bash
docker compose pull && docker compose up -d
```

## 3. 方式二:Docker指令
## 4. 方式三:手动Docker指令

### 3.1. Docker启动
### 4.1. Docker启动

```
# 生成并运行容器
Expand All @@ -111,7 +103,7 @@ docker logs -f bili

其中,`cookie`需要替换为自己真实的cookie字符串

### 3.2. 其他指令参考
### 4.2. 其他指令参考

```
# 启动容器
Expand All @@ -130,7 +122,7 @@ docker rm bili
docker exec -it bili /bin/bash
```

### 3.3. 使用Watchtower更新容器
### 4.3. 使用Watchtower更新容器
```
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
Expand All @@ -139,15 +131,15 @@ docker run --rm \
bili
```

## 4. 登录
## 5. 登录

在宿主机运行`docker exec -it bili bash -c "dotnet Ray.BiliBiliTool.Console.dll --runTasks=Login"`

扫码进行登录。

![login](../docs/imgs/docker-login.png)

## 5. 自己构建镜像(非必须)
## 6. 自己构建镜像(非必须)

目前我提供和维护的镜像:`[zai7lou/bilibili_tool_pro](https://hub.docker.com/repository/docker/zai7lou/bilibili_tool_pro)`;

Expand All @@ -159,10 +151,12 @@ docker run --rm \

`TARGET_NAME`为镜像名称和版本,可以自己起个名字

## 6. 其他
## 7. 其他

代码编译和发布环境: mcr.microsoft.com/dotnet/sdk:6.0

代码运行环境: mcr.microsoft.com/dotnet/runtime:6.0

apt-get 包源用的国内网易的。
apt-get 包源用的国内网易的

如果下载github资源有问题,可以尝试添加或删除代理url`https://ghproxy.com/`
Loading

0 comments on commit 185f4bd

Please sign in to comment.