Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
5a53e1a782
|
|||
|
b0e430e19d
|
|||
|
383af5a61e
|
|||
|
67593cc678
|
|||
|
4570d10238
|
|||
|
c05cd29028
|
|||
|
a62a960ebd
|
|||
|
23a6d9d18e
|
|||
|
30a7c3194d
|
@@ -1,65 +0,0 @@
|
||||
name: Build and Push Docker Image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "release/*"
|
||||
tags:
|
||||
- "*"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# Ensure full history and all tags are available
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up QEMU (multi-arch)
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: gitea.suda.codes/${{ github.repository }}
|
||||
tags: |
|
||||
type=ref,event=tag
|
||||
|
||||
- name: Determine latest Git tag
|
||||
id: latest
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
# Fetch tags in case the runner's mirror is stale
|
||||
git fetch --tags --force --quiet || true
|
||||
if tag=$(git describe --tags --abbrev=0 2>/dev/null); then
|
||||
echo "tag=$tag" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
# Fallback when no tags exist
|
||||
echo "tag=latest" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Log in to container registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: gitea.suda.codes
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
push: true
|
||||
# Always tag with the latest Git tag; also keep any tags from metadata (e.g., on tag events)
|
||||
tags: |
|
||||
${{ steps.meta.outputs.tags }}
|
||||
gitea.suda.codes/${{ github.repository }}:${{ steps.latest.outputs.tag }}
|
||||
23
Dockerfile
23
Dockerfile
@@ -1,19 +1,34 @@
|
||||
FROM python:3.12-slim
|
||||
|
||||
# Install dependencies + locales
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
libgl1 \
|
||||
libglib2.0-0 \
|
||||
zip \
|
||||
p7zip-full \
|
||||
locales \
|
||||
fonts-noto-cjk \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Generate Japanese UTF-8 locale
|
||||
RUN sed -i '/ja_JP.UTF-8/s/^# //g' /etc/locale.gen \
|
||||
&& locale-gen
|
||||
|
||||
# Set environment variables for locale
|
||||
ENV LANG=ja_JP.UTF-8 \
|
||||
LANGUAGE=ja_JP:ja \
|
||||
LC_ALL=ja_JP.UTF-8 \
|
||||
LC_CTYPE=ja_JP.UTF-8
|
||||
|
||||
RUN pip install --no-cache-dir --upgrade torch torchvision mokuro
|
||||
|
||||
# create a user to run the application
|
||||
RUN useradd -m mokurouser \
|
||||
&& mkdir -p /home/mokurouser/mokuro \
|
||||
&& chown -R mokurouser:mokurouser /home/mokurouser
|
||||
&& mkdir -p /mokuro \
|
||||
&& chown -R mokurouser:mokurouser /mokuro
|
||||
|
||||
WORKDIR /home/mokurouser/mokuro
|
||||
WORKDIR /mokuro
|
||||
|
||||
USER mokurouser
|
||||
|
||||
COPY . .
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
---
|
||||
services:
|
||||
mokuro:
|
||||
image: gitea.suda.codes/sudacode/mokuro-docker:latest
|
||||
image: mokuro
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: mokuro
|
||||
user: 1000:1000
|
||||
volumes:
|
||||
- ~/S/japanese/manga/One Piece Color/One Piece color v06-10:/home/mokurouser/mokuro
|
||||
command: mokuro --parent_dir One\ Piece\ Color --disable_confirmation
|
||||
- ~/S/japanese/manga:/mokuro/manga
|
||||
command: ./run.sh "manga/One Piece Color"
|
||||
runtime: nvidia
|
||||
restart: no
|
||||
network_mode: host
|
||||
tty: true
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
|
||||
38
run.sh
Executable file
38
run.sh
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
export LANG=ja_JP.UTF-8
|
||||
export LANGUAGE=ja_JP:ja
|
||||
export LC_ALL=ja_JP.UTF-8
|
||||
export LC_CTYPE=ja_JP.UTF-8
|
||||
|
||||
DIR="${1:-.}"
|
||||
|
||||
if [[ ! -d "$DIR" ]]; then
|
||||
echo "Error: Directory '$DIR' does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! mokuro --parent_dir "$DIR" --disable_confirmation; then
|
||||
echo "Error: mokuro command failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$DIR" || exit
|
||||
|
||||
for f in *.mokuro; do
|
||||
[[ -e "$f" ]] || continue
|
||||
base="${f%.mokuro}"
|
||||
dir="$base"
|
||||
zipfile="$base.zip"
|
||||
if [[ -f "$zipfile" ]]; then
|
||||
echo "Warning: Zip file $zipfile already exists, skipping."
|
||||
elif [[ -d "$dir" ]]; then
|
||||
echo "Zipping: $zipfile <- $f $dir/"
|
||||
7z a -tzip "$zipfile" "$f" "$dir"
|
||||
else
|
||||
echo "Warning: Directory '$dir' not found for '$f', skipping."
|
||||
fi
|
||||
done
|
||||
|
||||
rm -rf ./*.html
|
||||
Reference in New Issue
Block a user