
https://github.com/fetburner/distroless-epgstation/actions/workflows/build.yml/badge.svg?branch=main](https://github.com/fetburner/distroless-epgstation/actions/workflows/build.yml) https://github.com/fetburner/distroless-epgstation/actions/workflows/lint.yml/badge.svg?branch=main](https://github.com/fetburner/distroless-epgstation/actions/workflows/lint.yml)
https://github.com/GoogleContainerTools/distroless をベースイメージとして用いた録画管理ソフト https://github.com/l3tnun/EPGStation の非公式ビルドです。 https://github.com/l3tnun/EPGStation の動作に必要な最小限のファイルのみ含むよう実装されているため軽量であり、v2.10.0 時点で公式イメージのおよそ半分に相当する 85MB 程度に収まっています。
https://github.com/l3tnun/EPGStation のバージョン、https://github.com/l3tnun/EPGStation の実行に用いる Node.js のバージョン、及び https://github.com/GoogleContainerTools/distroless がベースにしている Debian のバージョンをハイフンで繋げてタグを打っており、現在次のバージョンをサポートしています。
これらは全てhttps://github.com/fetburner/distroless-epgstation/blob/main/Dockerfile からビルドされているので、イメージの中身が気になった場合はそちらを参照して下さい。
また、DockerHub とは別に https://github.com/fetburner/distroless-epgstation/pkgs/container/distroless-epgstation にもイメージをアップロードしており、GitHub Actions から用いる場合はそちらも便利です。
ライセンスの都合で公式イメージ同様 FFmpeg は同梱していないため、利用にあたっては自分でビルドした FFmpeg を配置する必要があります。 ここで、distroless-epgstation には FFmpeg の実行に必要な共有ライブラリの殆どが同梱されていないため、静的リンクを行うか共有ライブラリも FFmpeg と一緒にコピーする必要がある事に注意して下さい。
参考として、https://github.com/kurukurumaware/extlibcp を使って FFmpeg の実行に必要な共有ライブラリのコピーを行う場合の Dockerfile を示します。
DockerfileFROM debian:bookworm AS ffmpeg-build WORKDIR /app ENV FFMPEG_VERSION=7.0 RUN --mount=type=cache,id=apt,target=/var/cache/apt,sharing=locked \ --mount=type=cache,id=apt,target=/var/apt/lists,sharing=locked \ apt-get update && \ apt-get install -y \ make gcc git g++ automake curl wget autoconf build-essential libass-dev libfreetype6-dev \ libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev \ libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev \ yasm libx264-dev libmp3lame-dev libopus-dev libvpx-dev \ libx265-dev libnuma-dev \ libasound2 libass9 libvdpau1 libva-x11-2 libva-drm2 libxcb-shm0 libxcb-xfixes0 \ libxcb-shape0 libvorbisenc2 libtheora0 libaribb24-dev # FFmpeg のビルド # ここでのビルド設定は # [docker-mirakurun-epgstation](https://github.com/l3tnun/docker-mirakurun-epgstation) を参考としたもの RUN curl -fsSL http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 | tar -xj --strip-components=1 RUN ./configure \ --prefix=/usr/local \ --disable-shared \ --pkg-config-flags=--static \ --enable-gpl \ --enable-libass \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libtheora \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-version3 \ --enable-libaribb24 \ --enable-nonfree \ --disable-debug \ --disable-doc \ && \ make -j$(nproc) && \ make install # extlibcp を使うと ldd を繰り返し呼び出して特定のプログラムの実行に必要な共有ライブラリを列挙してコピーしてくれる RUN curl -fsSL https://github.com/kurukurumaware/extlibcp/tarball/master | tar -xz --strip-components=1 RUN ./extlibcp $(which ffmpeg) /build && \ ./extlibcp $(which ffprobe) /build # GitHub Container Registry のイメージを使う場合 # FROM ghcr.io/fetburner/distroless-epgstation:v2.10.0-18-bookworm FROM fetburner/distroless-epgstation:v2.10.0-18-bookworm # fetburner/distroless-epgstation:v2.10.0-18-bookworm に既に存在する共有ライブラリは除外して、 # ビルドした FFmpeg 及び FFprobe をコピーする # コピーしなくても良い共有ライブラリはプラットフォームや Debian のバージョンによって変わるので、 # [dive](https://github.com/wagoodman/dive) などを使って調べると良い COPY --from=ffmpeg-build \ --exclude=lib/aarch64-linux-gnu/libc.so.6 \ --exclude=lib/aarch64-linux-gnu/libm.so.6 \ --exclude=lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 \ --exclude=lib/aarch64-linux-gnu/libgcc_s.so.1 \ --exclude=lib/ld-linux-aarch64.so.1 \ /build /
/app 以下の EPGStation の動作に必要なファイルの配置は公式イメージと共通しているため、自分でビルドした FFmpeg さえ入れてしまえば公式イメージと同じ感覚で利用できます。
EPGStation の公式イメージを使った録画環境の構築例としては https://github.com/l3tnun/docker-mirakurun-epgstation が有名ですが、 FFmpeg を同梱した EPGStation のイメージを作成する Dockerfile さえ distroless-epgstation を使うものに置き換えてしまえば、 同様の docker-compose の設定で distroless-epgstation を使った録画環境を構築できます。
yamlepgstation: build: context: "./epgstation" dockerfile: "Dockerfile" volumes: - ./epgstation/config:/app/config - ./epgstation/data:/app/data - ./epgstation/thumbnail:/app/thumbnail - ./epgstation/logs:/app/logs - ./recorded:/app/recorded environment: TZ: "Asia/Tokyo" ports: - "8888:8888" restart: unless-stopped
SQLite3 の実行に必要な共有ライブラリがイメージに同梱されていないため、データベースには MySQL しか利用できません。
npm がイメージに同梱されていない上 node コマンドにパスが通っていないため、データベースのバックアップとレストアの手順が公式イメージと異なります。
バックアップの際は次のコマンドを、
/nodejs/bin/node /app/dist/DBTools.js -m backup -o FILENAME
レストアの際は次のコマンドを実行して下さい。
/nodejs/bin/node /app/dist/DBTools.js -m restore -o FILENAME


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务