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
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
# Install dependencies + locales
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
libgl1 \
|
libgl1 \
|
||||||
libglib2.0-0 \
|
libglib2.0-0 \
|
||||||
zip \
|
p7zip-full \
|
||||||
|
locales \
|
||||||
|
fonts-noto-cjk \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& 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
|
RUN pip install --no-cache-dir --upgrade torch torchvision mokuro
|
||||||
|
|
||||||
# create a user to run the application
|
# create a user to run the application
|
||||||
RUN useradd -m mokurouser \
|
RUN useradd -m mokurouser \
|
||||||
&& mkdir -p /home/mokurouser/mokuro \
|
&& mkdir -p /mokuro \
|
||||||
&& chown -R mokurouser:mokurouser /home/mokurouser
|
&& chown -R mokurouser:mokurouser /mokuro
|
||||||
|
|
||||||
WORKDIR /home/mokurouser/mokuro
|
WORKDIR /mokuro
|
||||||
|
|
||||||
|
USER mokurouser
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
---
|
---
|
||||||
services:
|
services:
|
||||||
mokuro:
|
mokuro:
|
||||||
image: gitea.suda.codes/sudacode/mokuro-docker:latest
|
image: mokuro
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: mokuro
|
container_name: mokuro
|
||||||
user: 1000:1000
|
user: 1000:1000
|
||||||
volumes:
|
volumes:
|
||||||
- ~/S/japanese/manga/One Piece Color/One Piece color v06-10:/home/mokurouser/mokuro
|
- ~/S/japanese/manga:/mokuro/manga
|
||||||
command: mokuro --parent_dir One\ Piece\ Color --disable_confirmation
|
command: ./run.sh "manga/One Piece Color"
|
||||||
runtime: nvidia
|
runtime: nvidia
|
||||||
restart: no
|
restart: no
|
||||||
network_mode: host
|
network_mode: host
|
||||||
|
tty: true
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
reservations:
|
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