├── .github └── workflows │ └── build.yml ├── Dockerfile └── README.md /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: build-docker-image 2 | on: 3 | push: 4 | schedule: 5 | - cron: "0 0 * * *" 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: checkout 12 | uses: actions/checkout@v3 13 | - name: Login to Docker Hub 14 | uses: docker/login-action@v2 15 | with: 16 | username: ${{ secrets.DOCKER_USERNAME }} 17 | password: ${{ secrets.DOCKER_PASSWORD }} 18 | - name: Extract metadata (tags, labels) for Docker 19 | id: meta 20 | uses: docker/metadata-action@v2 21 | with: 22 | images: aruneko/texlive 23 | tags: | 24 | type=raw,value=latest 25 | type=schedule,pattern={{date 'YYYYMMDD'}} 26 | - name: Set up Buildx 27 | id: buildx 28 | uses: docker/setup-buildx-action@v2 29 | - name: Build and push 30 | id: docker_build 31 | uses: docker/build-push-action@v4 32 | with: 33 | context: ./ 34 | file: ./Dockerfile 35 | builder: ${{ steps.buildx.outputs.name }} 36 | push: true 37 | tags: ${{ steps.meta.outputs.tags }} 38 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye-slim 2 | 3 | ENV TEXLIVE_VERSION 2023 4 | ENV PATH $PATH:/usr/local/texlive/${TEXLIVE_VERSION}/bin/x86_64-linux 5 | 6 | WORKDIR /tmp 7 | 8 | RUN apt update \ 9 | && apt install -y \ 10 | perl \ 11 | python3-pygments \ 12 | fonts-noto-cjk \ 13 | fonts-noto-cjk-extra \ 14 | ghostscript \ 15 | && apt-get clean \ 16 | && rm -rf /var/lib/apt/lists/* 17 | 18 | RUN apt update \ 19 | && apt install -y \ 20 | libfontconfig-dev \ 21 | wget \ 22 | xz-utils \ 23 | && wget -nv -O install-tl.tar.gz \ 24 | https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz \ 25 | && mkdir install-tl \ 26 | && tar -xzf install-tl.tar.gz -C install-tl --strip-components=1 \ 27 | && cd install-tl \ 28 | && printf "%s\n" \ 29 | "selected_scheme scheme-basic" \ 30 | "option_doc 0" \ 31 | "option_src 0" \ 32 | > ./texlive.profile \ 33 | && ./install-tl --profile=./texlive.profile \ 34 | && tlmgr install \ 35 | collection-latexrecommended \ 36 | collection-latexextra \ 37 | collection-fontsrecommended \ 38 | collection-langjapanese \ 39 | latexmk \ 40 | xetex \ 41 | && mkdir -p \ 42 | /usr/local/texlive/texmf-local/fonts/opentype/google/notosanscjk/ \ 43 | && mkdir -p \ 44 | /usr/local/texlive/texmf-local/fonts/opentype/google/notoserifcjk/ \ 45 | && ln -s /usr/share/fonts/opentype/noto/NotoSansCJK-*.ttc \ 46 | /usr/local/texlive/texmf-local/fonts/opentype/google/notosanscjk/ \ 47 | && ln -s /usr/share/fonts/opentype/noto/NotoSerifCJK-*.ttc \ 48 | /usr/local/texlive/texmf-local/fonts/opentype/google/notoserifcjk/ \ 49 | && mktexlsr \ 50 | && cd ../ \ 51 | && rm -rf install-tl \ 52 | && apt purge -y xz-utils libfontconfig-dev \ 53 | && apt autoremove -y \ 54 | && apt-get clean \ 55 | && rm -rf /var/lib/apt/lists/* 56 | 57 | RUN mkdir /texsrc 58 | 59 | VOLUME /texsrc 60 | 61 | WORKDIR /texsrc 62 | 63 | CMD ["/bin/bash"] 64 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TeX Live Docker image 2 | ## これなに? 3 | 比較的小さめに収めたTeX Liveが入っているDocker Imageです。 4 | 5 | ## 何が使えるの? 6 | platexとuplatexはコンパイルできます。latexmkも導入済みなので、変更を検知しながらのコンパイルができます。notoフォントも入れてあるのでWebブラウザ上でのPDFプレビューも日本語に対応しています。またPygmentsを導入してあるため、mintedによるソースコードのシンタックスハイライトも利用可能です。 7 | 8 | ## Docker Imageのビルド方法は? 9 | 10 | ```bash 11 | $ docker build -t aruneko/texlive . 12 | ``` 13 | 14 | ## ビルド済みのイメージを入手するには? 15 | 16 | ```bash 17 | $ docker pull aruneko/texlive 18 | ``` 19 | 20 | ## このイメージを使ってLaTeXのソースをビルドするには? 21 | ### platexを利用する場合の例 22 | 23 | ```bash 24 | $ docker container run -v $(pwd):/texsrc -it --rm aruneko/texlive platex foo.tex 25 | ``` 26 | 27 | ### latexmkによる自動コンパイル 28 | 29 | ```bash 30 | $ docker container run -v $(pwd):/texsrc -it --rm aruneko/texlive latexmk -pvc foo.tex 31 | ``` 32 | --------------------------------------------------------------------------------