mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2025-12-10 06:42:12 +01:00
overhaul the workflows
This commit is contained in:
671
.github/workflows/build_container_images.yml
vendored
671
.github/workflows/build_container_images.yml
vendored
@@ -4,161 +4,32 @@ on:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**/README.md'
|
||||
- '**/Dockerfile'
|
||||
- '**/save_docker_pull_count.yml'
|
||||
- '**/build_test_images.yml'
|
||||
- '**/Test_Git_Actions-Dockerfile'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tachidesk_release_type:
|
||||
required: false
|
||||
default: 'stable'
|
||||
description: 'Tachidesk Release Type'
|
||||
publish_images_manually:
|
||||
required: false
|
||||
default: 'no'
|
||||
description: 'Force Publish Images Manually'
|
||||
required: true
|
||||
default: 'preview'
|
||||
description: 'Suwayomi Release Type'
|
||||
type: choice
|
||||
options:
|
||||
- stable
|
||||
- preview
|
||||
|
||||
env:
|
||||
build_repo_docker: 'tachidesk'
|
||||
build_base_image_temurin: 'eclipse-temurin:11-jre-jammy'
|
||||
build_base_image_temurin_platform: 'linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x'
|
||||
build_base_image_temurin_platform_testing: 'linux/amd64'
|
||||
build_base_image_alpine: 'alpine:3.16'
|
||||
build_base_image_alpine_platform: 'linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x'
|
||||
build_base_image_alpine_platform_testing: 'linux/amd64'
|
||||
startup_script_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script.sh'
|
||||
tachidesk_webui_stable_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server/releases/latest'
|
||||
tachidesk_webui_preview_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server-preview/releases/latest'
|
||||
|
||||
jobs:
|
||||
check_workflow:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
enable_discord_hook: ${{ steps.run_job_steps.outputs.enable_discord_hook }}
|
||||
enable_build_publish: ${{ steps.run_job_steps.outputs.enable_discord_hook }}
|
||||
run_check_stable: ${{ steps.run_job_steps.outputs.run_check_stable }}
|
||||
run_check_preview: ${{ steps.run_job_steps.outputs.run_check_preview }}
|
||||
run_build_stable: ${{ steps.run_job_steps.outputs.run_build_stable }}
|
||||
run_build_preview: ${{ steps.run_job_steps.outputs.run_build_preview }}
|
||||
server_repo: ${{ inputs.tachidesk_release_type == 'stable' && 'Tachidesk-Server' || 'Tachidesk-Server-prevew' }}
|
||||
|
||||
if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')"
|
||||
steps:
|
||||
- name: run job and steps check
|
||||
id: run_job_steps
|
||||
run: |
|
||||
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
||||
if [[ "${{ github.event.inputs.tachidesk_release_type }}" == "stable" ]]; then
|
||||
if [[ "${{ github.actor }}" == "AriaMoradi" ]]; then
|
||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "arbuilder" ]]; then
|
||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "no" ]]; then
|
||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" != "arbuilder" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "run_check_stable=false" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
fi
|
||||
if [[ "${{ github.event.inputs.tachidesk_release_type }}" == "preview" ]]; then
|
||||
if [[ "${{ github.actor }}" == "AriaMoradi" ]]; then
|
||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "arbuilder" ]]; then
|
||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "no" ]]; then
|
||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
elif [[ "${{ github.actor }}" != "arbuilder" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "run_check_preview=false" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
fi
|
||||
elif [[ "${{ github.event_name }}" == "pull_request" || "${{ github.event_name }}" == "push" ]]; then
|
||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=false" >> $GITHUB_OUTPUT
|
||||
echo "run_check_preview=false" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "run_check_stable=false" >> $GITHUB_OUTPUT
|
||||
echo "run_build_stable=false" >> $GITHUB_OUTPUT
|
||||
echo "run_check_preview=false" >> $GITHUB_OUTPUT
|
||||
echo "run_build_preview=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
check_stable:
|
||||
needs: check_workflow
|
||||
jobs:
|
||||
build_stable:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
new_release_check: ${{ steps.release_version_check.outputs.new_release_check }}
|
||||
release_url: ${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
release_commit: ${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
release_tag: ${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
release_filename: ${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
release_version: ${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
release_var: ${{ steps.get_latest_release_metadata.outputs.release_var }}
|
||||
tachidesk_docker_git_commit: ${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
build_date: ${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
repository_owner_lower: ${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
||||
run_build_stable : ${{ needs.check_workflow.outputs.run_build_stable }}
|
||||
enable_discord_hook: ${{ needs.check_workflow.outputs.enable_discord_hook }}
|
||||
enable_build_publish: ${{ needs.check_workflow.outputs.enable_build_publish }}
|
||||
|
||||
if: needs.check_workflow.outputs.run_check_stable == 'true'
|
||||
steps:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
path: main
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
@@ -166,500 +37,92 @@ jobs:
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: get latest release metadata
|
||||
id: get_latest_release_metadata
|
||||
run: |
|
||||
cd main
|
||||
release_url=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
||||
release_tag=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
|
||||
latest_release_json=$(curl -s https://api.github.com/repos/suwayomi/${{ env.server_repo }}/releases/latest)
|
||||
release_url=$(echo $latest_release_json | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
||||
release_tag=$(echo $latest_release_json | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
|
||||
release_var=$(echo $release_url | egrep -o "Tachidesk-Server-$release_tag-r[0-9]+.jar" | egrep -o "$release_tag-r[0-9]+")
|
||||
release_commit=$(echo $release_var | cut -f2 -d"r")
|
||||
release_filename=Tachidesk-Server-${release_var}.jar
|
||||
release_version=$(echo $release_tag | cut -c2-)
|
||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
||||
build_date=$(date "+%F")
|
||||
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
||||
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
||||
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
||||
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
||||
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
||||
build_date=$(date "+%F")
|
||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
||||
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build and save stable ubuntu
|
||||
- name: Build container image
|
||||
id: docker_build_release_ubuntu
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_temurin_platform_testing }}
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
|
||||
push: true
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-ubuntu
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
tags: |
|
||||
test-image:stable
|
||||
outputs: type=docker,dest=/tmp/test_image_stable.tar
|
||||
|
||||
- name: Docker Run Test Stable Ubuntu Image
|
||||
id: docker_run_test_image_stable
|
||||
run: |
|
||||
docker load --input /tmp/test_image_stable.tar
|
||||
mkdir -p /home/runner/work/_temp/tachidesk
|
||||
chmod -R 777 /home/runner/work/_temp/tachidesk
|
||||
docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable test-image:stable
|
||||
sleep 15
|
||||
cat /home/runner/work/_temp/tachidesk/logfile.log
|
||||
curl -s 127.0.0.1:4568/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4568/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
|
||||
if [[ $val == "Tachidesk" ]]; then
|
||||
echo ""
|
||||
echo "Tachidesk stable ubuntu run successfully"
|
||||
echo "value=true" >> $GITHUB_OUTPUT
|
||||
docker stop test_image_stable
|
||||
else
|
||||
echo ""
|
||||
echo "Tachidesk stable ubuntu run Failed"
|
||||
echo "value=false" >> $GITHUB_OUTPUT
|
||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
||||
curl \
|
||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Ubuntu Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
||||
-F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \
|
||||
"https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Build and save stable alpine
|
||||
id: docker_build_release_alpine
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_alpine_platform_testing }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-alpine
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
tags: |
|
||||
test-image:stable-alpine
|
||||
outputs: type=docker,dest=/tmp/test_image_stable_alpine.tar
|
||||
|
||||
- name: Docker Run Test Stable Alpine Image
|
||||
id: docker_run_test_image_stable_alpine
|
||||
run: |
|
||||
docker load --input /tmp/test_image_stable_alpine.tar
|
||||
mkdir -p /home/runner/work/_temp/tachidesk_alpine
|
||||
chmod -R 777 /home/runner/work/_temp/tachidesk_alpine
|
||||
docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk_alpine:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable_alpine test-image:stable-alpine
|
||||
sleep 15
|
||||
cat /home/runner/work/_temp/tachidesk_alpine/logfile.log
|
||||
curl -s 127.0.0.1:4568/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4568/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
|
||||
if [[ $val == "Tachidesk" ]]; then
|
||||
echo ""
|
||||
echo "Tachidesk stable alpine run successfully"
|
||||
echo "value=true" >> $GITHUB_OUTPUT
|
||||
docker stop test_image_stable_alpine
|
||||
else
|
||||
echo ""
|
||||
echo "Tachidesk stable alpine run Failed"
|
||||
echo "value=false" >> $GITHUB_OUTPUT
|
||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
||||
curl \
|
||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Alpine Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
||||
-F "file1=@/home/runner/work/_temp/tachidesk_alpine/logfile.log" \
|
||||
"https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Delete docker files
|
||||
run: |
|
||||
rm -f /tmp/test_image_stable.tar
|
||||
rm -f /tmp/test_image_stable_alpine.tar
|
||||
#rm -rf /home/runner/work/_temp/tachidesk
|
||||
#rm -rf /home/runner/work/_temp/tachidesk_alpine
|
||||
|
||||
|
||||
build_stable:
|
||||
needs: check_stable
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: needs.check_stable.outputs.run_build_stable == 'true'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
path: main
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push stable ubuntu
|
||||
id: docker_build_release_ubuntu
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_temurin_platform }}
|
||||
push: ${{ needs.check_stable.outputs.enable_build_publish == 'true' }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ needs.check_stable.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-ubuntu
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_stable.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_stable.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_stable.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_stable.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest-ubuntu
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable-ubuntu
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}-ubuntu
|
||||
ghcr.io/suwayomi/tachidesk:latest
|
||||
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type }}
|
||||
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type == 'stable' && steps.get_latest_release_metadata.outputs.release_tag || steps.get_latest_release_metadata.outputs.release_var }}
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
|
||||
- name: Build and push stable alpine
|
||||
id: docker_build_release_alpine
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_alpine_platform }}
|
||||
push: ${{ needs.check_stable.outputs.enable_build_publish == 'true' }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ needs.check_stable.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }}
|
||||
IMAGE_TYPE=stable-alpine
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_stable.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_stable.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_stable.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_stable.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest-alpine
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable-alpine
|
||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}-alpine
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
|
||||
- name: save stable release
|
||||
run: |
|
||||
cd main
|
||||
git pull
|
||||
echo "`jq '.stable="${{ needs.check_stable.outputs.release_tag }}"' scripts/tachidesk_version.json`" > scripts/tachidesk_version.json
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git status
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git pull
|
||||
git add .
|
||||
git commit -m "Update stable release version"
|
||||
git push
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
- name: discord webhook stable
|
||||
if: ${{ needs.check_stable.outputs.enable_discord_hook == 'true' }}
|
||||
id: discord_webhook_stable
|
||||
run: |
|
||||
curl -H "Content-Type: application/json" -d '{"content": "Docker Stable Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Stable Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/tachidesk","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/tachidesk","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ needs.check_stable.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
|
||||
check_preview:
|
||||
needs: check_workflow
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
new_release_check: ${{ steps.release_version_check.outputs.new_release_check }}
|
||||
release_url: ${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
release_commit: ${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
release_tag: ${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
release_filename: ${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
release_version: ${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
release_var: ${{ steps.get_latest_release_metadata.outputs.release_var }}
|
||||
tachidesk_docker_git_commit: ${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
build_date: ${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
repository_owner_lower: ${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
||||
run_build_preview : ${{ needs.check_workflow.outputs.run_build_preview }}
|
||||
enable_discord_hook: ${{ needs.check_workflow.outputs.enable_discord_hook }}
|
||||
enable_build_publish: ${{ needs.check_workflow.outputs.enable_build_publish }}
|
||||
|
||||
if: needs.check_workflow.outputs.run_check_preview == 'true'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
path: main
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: get latest release metadata
|
||||
id: get_latest_release_metadata
|
||||
run: |
|
||||
cd main
|
||||
release_url=$(curl -s ${{ env.tachidesk_webui_preview_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
||||
release_tag=$(curl -s ${{ env.tachidesk_webui_preview_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+-r[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+-r[0-9]+")
|
||||
release_var=$(echo $release_url | grep -o "Tachidesk-Server-$release_tag.jar" | grep -o "$release_tag" )
|
||||
release_commit=$(echo $release_var | cut -f2 -d"r")
|
||||
release_filename=Tachidesk-Server-${release_var}.jar
|
||||
release_version=$(echo $release_tag | cut -c2-)
|
||||
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
||||
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
||||
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
||||
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
||||
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
||||
build_date=$(date "+%F")
|
||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
||||
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build and save preview ubuntu
|
||||
id: docker_build_release_ubuntu
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_temurin_platform_testing }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-ubuntu
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
tags: |
|
||||
test-image:preview
|
||||
outputs: type=docker,dest=/tmp/test_image_preview.tar
|
||||
|
||||
- name: Docker Run Test Preview Image Ubuntu
|
||||
id: docker_run_test_image_preview
|
||||
run: |
|
||||
docker load --input /tmp/test_image_preview.tar
|
||||
mkdir -p /home/runner/work/_temp/tachidesk
|
||||
chmod -R 777 /home/runner/work/_temp/tachidesk
|
||||
docker run --rm -d -p 127.0.0.1:4569:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_preview test-image:preview
|
||||
sleep 15
|
||||
cat /home/runner/work/_temp/tachidesk/logfile.log
|
||||
curl -s 127.0.0.1:4569/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4569/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
|
||||
if [[ $val == "Tachidesk" ]]; then
|
||||
echo ""
|
||||
echo "Tachidesk preview run successfully"
|
||||
echo "value=true" >> $GITHUB_OUTPUT
|
||||
docker stop test_image_preview
|
||||
run_check="true"
|
||||
else
|
||||
echo ""
|
||||
echo "Tachidesk preview run Failed"
|
||||
echo "value=false" >> $GITHUB_OUTPUT
|
||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
||||
curl \
|
||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Preview Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
||||
-F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \
|
||||
"https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
docker system prune -a -f --volumes
|
||||
|
||||
- name: Build and save preview alpine
|
||||
id: docker_build_release_alpine
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_alpine_platform_testing }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-alpine
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
tags: |
|
||||
test-image:preview-alpine
|
||||
outputs: type=docker,dest=/tmp/test_image_preview_alpine.tar
|
||||
|
||||
|
||||
- name: Docker Run Test Preview Image Alpine
|
||||
id: docker_run_test_image_preview_alpine
|
||||
run: |
|
||||
docker load --input /tmp/test_image_preview_alpine.tar
|
||||
mkdir -p /home/runner/work/_temp/tachidesk_alpine
|
||||
chmod -R 777 /home/runner/work/_temp/tachidesk_alpine
|
||||
docker run --rm -d -p 127.0.0.1:4569:4567 -v /home/runner/work/_temp/tachidesk_alpine:/home/suwayomi/.local/share/Tachidesk --name=test_image_preview_alpine test-image:preview-alpine
|
||||
sleep 15
|
||||
cat /home/runner/work/_temp/tachidesk_alpine/logfile.log
|
||||
curl -s 127.0.0.1:4569/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4569/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
|
||||
if [[ $val == "Tachidesk" ]]; then
|
||||
echo ""
|
||||
echo "Tachidesk preview alpine run successfully"
|
||||
echo "value=true" >> $GITHUB_OUTPUT
|
||||
docker stop test_image_preview_alpine
|
||||
run_check="true"
|
||||
else
|
||||
echo ""
|
||||
echo "Tachidesk preview alpine run Failed"
|
||||
echo "value=false" >> $GITHUB_OUTPUT
|
||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
||||
curl \
|
||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Preview Alpine Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
||||
-F "file1=@/home/runner/work/_temp/tachidesk_alpine/logfile.log" \
|
||||
"https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
docker system prune -a -f --volumes
|
||||
|
||||
- name: Delete docker files
|
||||
run: |
|
||||
rm -f /tmp/test_image_preview.tar
|
||||
rm -f /tmp/test_image_preview_alpine.tar
|
||||
#rm -rf /home/runner/work/_temp/tachidesk
|
||||
#rm -rf /home/runner/work/_temp/tachidesk_alpine
|
||||
|
||||
build_preview:
|
||||
needs: check_preview
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: needs.check_preview.outputs.run_build_preview == 'true'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
path: main
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push preview ubuntu
|
||||
id: docker_build_release_ubuntu
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_temurin_platform }}
|
||||
push: ${{ needs.check_preview.outputs.enable_build_publish == 'true' }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ needs.check_preview.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ needs.check_preview.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-ubuntu
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_preview.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_preview.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_preview.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_preview.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_preview.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview
|
||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-ubuntu
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
|
||||
- name: Build and push preview alpine
|
||||
id: docker_build_release_alpine
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_alpine_platform }}
|
||||
push: ${{ needs.check_preview.outputs.enable_build_publish == 'true' }}
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ needs.check_preview.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ needs.check_preview.outputs.release_version }}
|
||||
IMAGE_TYPE=preview-alpine
|
||||
TACHIDESK_GIT_COMMIT=${{ needs.check_preview.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ needs.check_preview.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_preview.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ needs.check_preview.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_preview.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }}
|
||||
tags: |
|
||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-alpine
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
|
||||
- name: save preview release
|
||||
run: |
|
||||
cd main
|
||||
git pull
|
||||
echo "`jq '.preview="${{ needs.check_preview.outputs.release_tag }}"' scripts/tachidesk_version.json`" > scripts/tachidesk_version.json
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git status
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git pull
|
||||
git add .
|
||||
git commit -m "Update current preview version"
|
||||
git push
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
# - name: Docker Run Test Stable Ubuntu Image
|
||||
# id: docker_run_test_image_stable
|
||||
# run: |
|
||||
# docker load --input /tmp/test_image_stable.tar
|
||||
# mkdir -p /home/runner/work/_temp/tachidesk
|
||||
# chmod -R 777 /home/runner/work/_temp/tachidesk
|
||||
# docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable test-image:stable
|
||||
# sleep 15
|
||||
# cat /home/runner/work/_temp/tachidesk/logfile.log
|
||||
# curl -s 127.0.0.1:4568/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4568/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique)
|
||||
# if [[ $val == "Tachidesk" ]]; then
|
||||
# echo ""
|
||||
# echo "Tachidesk stable ubuntu run successfully"
|
||||
# echo "value=true" >> $GITHUB_OUTPUT
|
||||
# docker stop test_image_stable
|
||||
# else
|
||||
# echo ""
|
||||
# echo "Tachidesk stable ubuntu run Failed"
|
||||
# echo "value=false" >> $GITHUB_OUTPUT
|
||||
# curl \
|
||||
# -F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Ubuntu Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
||||
# -F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \
|
||||
# "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
# fi
|
||||
# exit 1
|
||||
# fi
|
||||
|
||||
- name: discord webhook preview
|
||||
if: ${{ needs.check_preview.outputs.enable_discord_hook == 'true' }}
|
||||
if: ${{ inputs.tachidesk_release_type == 'preview' }}
|
||||
id: discord_webhook_preview
|
||||
run: |
|
||||
curl -H "Content-Type: application/json" -d '{"content": "Docker Preview Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Preview Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/tachidesk:preview","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/tachidesk:preview","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ needs.check_preview.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
curl -H "Content-Type: application/json" -d '{"content": "Docker Preview Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Preview Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/suwayomi/tachidesk:preview","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/suwayomi/tachidesk:preview","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ steps.get_latest_release_metadata.outputs.release_var }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
|
||||
- name: discord webhook stable
|
||||
if: ${{ inputs.tachidesk_release_type == 'stable' }}
|
||||
id: discord_webhook_stable
|
||||
run: |
|
||||
curl -H "Content-Type: application/json" -d '{"content": "Docker Stable Image Published!","embeds":[{"color":5409028,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Stable Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/suwayomi/tachidesk:stable","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/suwayomi/tachidesk","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||
|
||||
122
.github/workflows/build_test_images.yml
vendored
122
.github/workflows/build_test_images.yml
vendored
@@ -1,122 +0,0 @@
|
||||
name: Build Test Images
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- '**/README.md'
|
||||
- '**/Dockerfile'
|
||||
- '**/save_docker_pull_count.yml'
|
||||
- '**/build_container_images.yml'
|
||||
- '**/Git_Actions-Dockerfile'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
schedule:
|
||||
- cron: '10 5 * * 2,5'
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
env:
|
||||
build_repo_docker: 'tachidesk'
|
||||
build_base_image_temurin: 'eclipse-temurin:11-jre-jammy'
|
||||
build_base_image_temurin_platform: 'linux/amd64'
|
||||
build_base_image_alpine: 'alpine:3.16'
|
||||
build_base_image_alpine_platform: 'linux/amd64'
|
||||
startup_script_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script.sh'
|
||||
tachidesk_webui_stable_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server/releases/latest'
|
||||
|
||||
jobs:
|
||||
|
||||
build_stable:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
path: main
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: get latest release metadata
|
||||
id: get_latest_release_metadata
|
||||
run: |
|
||||
cd main
|
||||
release_url=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
||||
release_tag=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
|
||||
release_var=$(echo $release_url | egrep -o "Tachidesk-Server-$release_tag-r[0-9]+.jar" | egrep -o "$release_tag-r[0-9]+")
|
||||
release_commit=$(echo $release_var | cut -f2 -d"r")
|
||||
release_filename=Tachidesk-Server-${release_var}.jar
|
||||
release_version=$(echo $release_tag | cut -c2-)
|
||||
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
||||
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
||||
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
||||
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
||||
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
||||
build_date=$(date "+%F")
|
||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
||||
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Build and push stable ubuntu
|
||||
id: docker_build_release_ubuntu
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Test_Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_temurin_platform }}
|
||||
push: true
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=develop-ubuntu
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
||||
tags: |
|
||||
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
|
||||
- name: Build and push stable alpine
|
||||
id: docker_build_release_alpine
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
file: scripts/dockerfiles/Test_Git_Actions-Dockerfile
|
||||
platforms: ${{ env.build_base_image_alpine_platform }}
|
||||
push: true
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||
IMAGE_TYPE=develop-alpine
|
||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
||||
tags: |
|
||||
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop-alpine
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||
37
.github/workflows/save_docker_pull_count.yml
vendored
37
.github/workflows/save_docker_pull_count.yml
vendored
@@ -1,37 +0,0 @@
|
||||
name: Save Docker Pull Count
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# schedule:
|
||||
# - cron: "0 11 * * *"
|
||||
|
||||
jobs:
|
||||
save_pull_count:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
path: main
|
||||
fetch-depth: 0
|
||||
|
||||
- name: save total downloads
|
||||
run: |
|
||||
cd main
|
||||
total_downloads_previous=$(jq -r '.total_downloads' scripts/tachidesk_version.json)
|
||||
total_downloads=$(curl -s https://github.com/Suwayomi/docker-tachidesk/pkgs/container/tachidesk | grep -A1 "Total downloads" | tr -d \\n | egrep -o "Total download.*.=\"[0-9]+\">" | cut -f2 -d"=" | egrep -o "[0-9]+")
|
||||
if [[ $total_downloads != $total_downloads_previous ]]; then
|
||||
git pull
|
||||
echo "`jq --arg value "$total_downloads" '.total_downloads=$value' scripts/tachidesk_version.json`" > scripts/tachidesk_version.json
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git status
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
git pull
|
||||
git add .
|
||||
git commit -a -m "Update docker pull count"
|
||||
git push
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
fi
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
data/
|
||||
56
Dockerfile
56
Dockerfile
@@ -1,17 +1,39 @@
|
||||
FROM eclipse-temurin:11-jre-focal
|
||||
|
||||
RUN groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi;
|
||||
|
||||
RUN mkdir -p /home/suwayomi && chown -R suwayomi:suwayomi /home/suwayomi
|
||||
|
||||
USER suwayomi
|
||||
|
||||
WORKDIR /home/suwayomi
|
||||
|
||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/scripts/startup_script.sh -o /home/suwayomi/startup/startup_script.sh
|
||||
|
||||
RUN curl -L $(curl -s https://api.github.com/repos/suwayomi/tachidesk-server/releases/latest | grep -o "https.*jar") -o /home/suwayomi/startup/tachidesk_latest.jar
|
||||
|
||||
EXPOSE 4567
|
||||
|
||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
||||
FROM eclipse-temurin:11-jre-jammy
|
||||
|
||||
ARG BUILD_DATE
|
||||
ARG IMAGE_VERSION
|
||||
ARG TACHIDESK_GIT_COMMIT
|
||||
ARG TACHIDESK_RELEASE_TAG
|
||||
ARG TACHIDESK_FILENAME
|
||||
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
||||
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
||||
|
||||
LABEL maintainer="suwayomi" \
|
||||
org.opencontainers.image.title="Suwayomi Docker" \
|
||||
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
||||
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
||||
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
||||
org.opencontainers.image.description="This image is used to start suwayomi server in a container" \
|
||||
org.opencontainers.image.vendor="suwayomi" \
|
||||
org.opencontainers.image.created=$BUILD_DATE \
|
||||
org.opencontainers.image.version=$IMAGE_VERSION \
|
||||
tachidesk.git_commit=$TACHIDESK_GIT_COMMIT \
|
||||
tachidesk.docker_commit=$TACHIDESK_DOCKER_GIT_COMMIT \
|
||||
tachidesk.release_tag=$TACHIDESK_RELEASE_TAG \
|
||||
tachidesk.filename=$TACHIDESK_FILENAME \
|
||||
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
||||
org.opencontainers.image.licenses="MPL-2.0"
|
||||
|
||||
RUN groupadd --gid 1000 suwayomi && \
|
||||
useradd --uid 1000 --gid suwayomi --no-log-init suwayomi && \
|
||||
mkdir -p /home/suwayomi && \
|
||||
chown -R suwayomi:suwayomi /home/suwayomi
|
||||
USER suwayomi
|
||||
WORKDIR /home/suwayomi
|
||||
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
||||
COPY startup_script.sh /home/suwayomi/startup_script.sh
|
||||
|
||||
EXPOSE 4567
|
||||
CMD ["/bin/sh", "/home/suwayomi/startup_script.sh"]
|
||||
|
||||
# vim: set ft=dockerfile:
|
||||
|
||||
30
compose.yml
30
compose.yml
@@ -1,30 +0,0 @@
|
||||
---
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
|
||||
tachidesk-docker:
|
||||
image: ghcr.io/suwayomi/tachidesk
|
||||
container_name: tachidesk-docker
|
||||
networks:
|
||||
custom_network1:
|
||||
ipv4_address: 172.22.2.11
|
||||
environment:
|
||||
- PUID=1000 # ( dont change, require uid to be 1000 )
|
||||
- PGID=1000 # ( dont change, require gid to be 1000 )
|
||||
- TZ=< change it to your timezone > # Use TZ database name from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
- LOGGING=file
|
||||
volumes:
|
||||
- /<path to folder>/docker-config/tachidesk:/home/suwayomi/.local/share/Tachidesk # edit <path to folder> to your mapped folder
|
||||
ports:
|
||||
- "4567:4567"
|
||||
restart: on-failure:3
|
||||
|
||||
networks:
|
||||
custom_network1:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 172.22.2.0/24
|
||||
gateway: 172.22.2.1
|
||||
16
docker-compose.yml
Normal file
16
docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
|
||||
tachidesk-docker:
|
||||
image: ghcr.io/suwayomi/tachidesk:stable
|
||||
environment:
|
||||
- PUID=1000 # ( dont change, require uid to be 1000 )
|
||||
- PGID=1000 # ( dont change, require gid to be 1000 )
|
||||
- TZ=Etc/UTC # Use TZ database name from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
volumes:
|
||||
- ./data:/home/suwayomi/.local/share/Tachidesk # edit <path to folder> to your mapped folder
|
||||
ports:
|
||||
- "4567:4567"
|
||||
restart: on-failure:3
|
||||
@@ -1,52 +0,0 @@
|
||||
ARG BASE_IMAGE=none
|
||||
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
ARG BASE_IMAGE
|
||||
ARG BUILD_DATE
|
||||
ARG IMAGE_VERSION
|
||||
ARG IMAGE_TYPE
|
||||
ARG TACHIDESK_GIT_COMMIT
|
||||
ARG TACHIDESK_RELEASE_TAG
|
||||
ARG TACHIDESK_FILENAME
|
||||
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
||||
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
||||
ARG STARTUP_SCRIPT_URL
|
||||
|
||||
RUN if echo "$BASE_IMAGE" | grep -q "openjdk"; then useradd -ms /bin/sh suwayomi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "eclipse-temurin"; then \
|
||||
if echo "$BASE_IMAGE" | grep -q "alpine"; then \
|
||||
apk --update add curl tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else \
|
||||
groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi; fi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "alpine"; then apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else echo "wrong base image"; \
|
||||
fi
|
||||
|
||||
LABEL maintainer="suwayomi" \
|
||||
org.opencontainers.image.title="Tachidesk Docker" \
|
||||
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
||||
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
||||
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
||||
org.opencontainers.image.description="This image is used to start tachidesk jar executable in a container" \
|
||||
base_image=$BASE_IMAGE \
|
||||
org.opencontainers.image.vendor="suwayomi" \
|
||||
org.opencontainers.image.created=$BUILD_DATE \
|
||||
org.opencontainers.image.version=$IMAGE_VERSION \
|
||||
image_type=$IMAGE_TYPE \
|
||||
"tachidesk.git_commit"=$TACHIDESK_GIT_COMMIT \
|
||||
"tachidesk.release_tag"=$TACHIDESK_RELEASE_TAG \
|
||||
"tachidesk.filename"=$TACHIDESK_FILENAME \
|
||||
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
||||
org.opencontainers.image.licenses="MPL-2.0"
|
||||
|
||||
RUN mkdir -p /home/suwayomi && chown -R suwayomi:suwayomi /home/suwayomi
|
||||
USER suwayomi:suwayomi
|
||||
WORKDIR /home/suwayomi
|
||||
RUN echo $TACHIDESK_FILENAME
|
||||
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
||||
RUN echo $TACHIDESK_DOCKER_GIT_COMMIT
|
||||
RUN curl -s --create-dirs -L $STARTUP_SCRIPT_URL -o /home/suwayomi/startup/startup_script.sh
|
||||
|
||||
EXPOSE 4567
|
||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
||||
@@ -1,60 +0,0 @@
|
||||
ARG BASE_IMAGE=none
|
||||
|
||||
FROM $BASE_IMAGE
|
||||
|
||||
ARG BASE_IMAGE
|
||||
ARG BUILD_DATE
|
||||
ARG IMAGE_VERSION
|
||||
ARG IMAGE_TYPE
|
||||
ARG TACHIDESK_GIT_COMMIT
|
||||
ARG TACHIDESK_RELEASE_TAG
|
||||
ARG TACHIDESK_FILENAME
|
||||
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
||||
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
||||
ARG STARTUP_SCRIPT_URL
|
||||
|
||||
RUN if echo "$BASE_IMAGE" | grep -q "openjdk"; then useradd -ms /bin/sh suwayomi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "eclipse-temurin"; then \
|
||||
if echo "$BASE_IMAGE" | grep -q "alpine"; then \
|
||||
apk --update add curl tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else \
|
||||
groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi; fi; \
|
||||
elif echo "$BASE_IMAGE" | grep -q "alpine"; then apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
||||
else echo "wrong base image"; \
|
||||
fi
|
||||
|
||||
LABEL maintainer="suwayomi" \
|
||||
org.opencontainers.image.title="Tachidesk Docker" \
|
||||
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
||||
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
||||
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
||||
org.opencontainers.image.description="This image is used to start tachidesk jar executable in a container" \
|
||||
base_image=$BASE_IMAGE \
|
||||
org.opencontainers.image.vendor="suwayomi" \
|
||||
org.opencontainers.image.created=$BUILD_DATE \
|
||||
org.opencontainers.image.version=$IMAGE_VERSION \
|
||||
image_type=$IMAGE_TYPE \
|
||||
"tachidesk.git_commit"=$TACHIDESK_GIT_COMMIT \
|
||||
"tachidesk.release_tag"=$TACHIDESK_RELEASE_TAG \
|
||||
"tachidesk.filename"=$TACHIDESK_FILENAME \
|
||||
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
||||
org.opencontainers.image.licenses="MPL-2.0"
|
||||
|
||||
RUN USER=suwayomi && \
|
||||
GROUP=suwayomi && \
|
||||
curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.5.1/fixuid-0.5.1-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - && \
|
||||
chown root:root /usr/local/bin/fixuid && \
|
||||
chmod 4755 /usr/local/bin/fixuid && \
|
||||
mkdir -p /etc/fixuid && \
|
||||
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml
|
||||
|
||||
USER suwayomi:suwayomi
|
||||
WORKDIR /home/suwayomi
|
||||
RUN echo $TACHIDESK_FILENAME
|
||||
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
||||
RUN echo $TACHIDESK_DOCKER_GIT_COMMIT
|
||||
RUN curl -s --create-dirs -L $STARTUP_SCRIPT_URL -o /home/suwayomi/startup/startup_script.sh
|
||||
|
||||
EXPOSE 4567
|
||||
ENTRYPOINT ["fixuid"]
|
||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"stable": "v0.7.0",
|
||||
"preview": "v0.7.0-r1268",
|
||||
"total_downloads": "50k+"
|
||||
}
|
||||
8
scripts/startup_script.sh → startup_script.sh
Normal file → Executable file
8
scripts/startup_script.sh → startup_script.sh
Normal file → Executable file
@@ -14,9 +14,5 @@ echo ""
|
||||
echo "Tachidesk data location inside the container -> /home/suwayomi/.local/share/Tachidesk"
|
||||
echo ""
|
||||
echo "The server is running by default configuration on http://localhost:4567"
|
||||
if [ "${LOGGING:-file}" != "file" ]; then
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||
else
|
||||
echo "log file location inside the container -> /home/suwayomi/.local/share/Tachidesk/logfile.log"
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar" > /home/suwayomi/.local/share/Tachidesk/logfile.log 2>&1;
|
||||
fi
|
||||
|
||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||
Reference in New Issue
Block a user