Skip to main content

Docker

Docker cung cấp một cách nhẹ và di động để đóng gói và chạy ứng dụng trong các container biệt lập. Bằng cách đóng gói ứng dụng cùng với tất cả các phụ thuộc cần thiết, container đảm bảo hành vi nhất quán trên các máy khác nhau, từ laptop đến máy chủ production. TeX Live rất mạnh mẽ nhưng có dung lượng lớn và nhạy cảm với sự khác biệt ở cấp hệ thống. Việc đóng gói TeX Live trong một Docker image giúp bộ công cụ LaTeX trở nên dễ dự đoán, có thể tái tạo và dễ phân phối. Tuy nhiên, một số gói TeX Live phụ thuộc vào quyền truy cập shell. Vì lý do bảo mật, container nên chạy trong một môi trường bị giới hạn, ngăn người dùng thực thi các lệnh shell tùy ý (ví dụ qua \write18 hoặc shell escape). Sự cô lập này bảo vệ hệ thống host và tránh việc truy cập ngoài ý muốn vào hệ thống tệp bên dưới của container hoặc các công cụ như bash.

Phiên bản TeXLive Full

TeXLive-Full@ayaka-notes là một TeXLive Docker image đầy đủ tính năng, được thiết kế cho việc biên dịch LaTeX trong sandbox ở Ayakaleaf Pro, Overleaf CEP, hoặc các môi trường biên dịch LaTeX độc lập. Image này hướng đến việc cung cấp một bản phân phối TeXLive gần như hoàn chỉnh với các phông chữ và công cụ phổ biến được cài sẵn, nhằm giảm thiểu lỗi biên dịch do thiếu gói hoặc phông chữ. Lưu ý: Docker Image này không chứa bất kỳ thành phần sharelatex/overleaf nào. Nó được dùng cho việc biên dịch của Overleaf/Overleaf Pro.

Tính năng:

  • 🚀 Hỗ trợ cả kiến trúc máy chủ x86_64 và arm64
  • 📦 Bản cài đặt TeXLive đầy đủ và được tối ưu
  • 🧩 Cài sẵn các phông chữ và tiện ích phổ biến
  • 🐳 Sẵn sàng sử dụng với Docker và Docker Compose
  • 🧪 Đã được kiểm thử với Overleaf Server Pro / Overleaf Pro
  • 🔄 Cập nhật thường xuyên theo các bản phát hành TeXLive mới nhất
  • 🏷 Nhiều tag phiên bản TeXLive (2020 – mới nhất)
  • 🧑‍🔬 Hỗ trợ Knitr cho mã R trong tài liệu LaTeX

Sử dụng với Ayakaleaf Pro

TeX Live Full của Ayaka-notes được thiết kế đặc biệt cho ayakaleaf-pro; bạn có thể thêm các biến môi trường sau vào tệp config/variables.env nếu bạn là người dùng toolkit. Ví dụ:
config/variables.env

Phiên bản TeX Live

Nhờ GitHub Action, chúng tôi có thể build song song tất cả các image TeX, bao gồm:
  • ghcr.io/ayaka-notes/texlive-full:2026.1 (cũng là tag latest)
  • ghcr.io/ayaka-notes/texlive-full:2025.1
  • ghcr.io/ayaka-notes/texlive-full:2024.1
  • ghcr.io/ayaka-notes/texlive-full:2023.1
  • ghcr.io/ayaka-notes/texlive-full:2022.1
  • ghcr.io/ayaka-notes/texlive-full:2021.1
  • ghcr.io/ayaka-notes/texlive-full:2020.1
  • ghcr.io/ayaka-notes/texlive-full:base
Chúng tôi sử dụng kho lưu trữ mirror từ texlive info, bao gồm gần như tất cả các phiên bản TeX Live từ 1996 đến 2025. Và nhờ Dockerfile của Overleaf, chúng tôi có thể build dự án này nhanh hơn.
Tại sao TeX Live 2019 trở về trước không được hỗ trợ? Việc duy trì các image cũ này cực kỳ khó khăn. Ngoài ra, trang web texlive.info không cung cấp thông tin cho các phiên bản TeX Live phát hành trước 2019, vì vậy chúng tôi không thể build image cho các phiên bản đó. Nếu bạn cần một phiên bản cũ cụ thể, hãy mở issue và cho chúng tôi biết.

Thành phần đi kèm

Các gói sau có trong Docker image.
  • Tất cả các gói TeXLive (của năm đó)
  • Các gói R (chỉ một số được chọn)
  • fontconfig inkscape pandoc python3-pygments wget python3
  • gnupg gnuplot perl-modules perl ca-certificates
  • ghostscript qpdf r-base-core tar
Các phông chữ sau có trong Docker image.
Vui lòng xác nhận liệu các phông chữ liên quan có được phép sử dụng cho mục đích thương mại hay không. Chúng tôi không chịu trách nhiệm đối với bất kỳ vấn đề pháp lý nào phát sinh từ việc bạn sử dụng phông chữ không đúng cách. Khi tải image xuống, bạn mặc nhiên đồng ý với điều này.

Giấy phép

MIT

Sự cố

Khi Overleaf biên dịch dự án LaTeX, nếu xảy ra tình trạng thiếu phông chữ, bạn có thể thấy quá trình biên dịch mất rất nhiều thời gian, vì khi thiếu một phông chữ, TeX Live sẽ cố gắng build lại toàn bộ bộ nhớ đệm phông chữ. Đây là một quá trình tốn thời gian.Trong image của chúng tôi, bộ nhớ đệm phông chữ đã được build sẵn; chúng tôi khắc phục vấn đề này bằng commit này
Khi sử dụng image này trong sharelatex, bạn có thể thấy SyncTeX cực kỳ chậm.Xem: https://github.com/overleaf/overleaf/issues/1150, chỉ cần tắt HTTP 2.0.
Nếu bạn dùng image TeX Live chính thức trên Docker Hub texlive/texlive, bạn có thể thấy khi biên dịch lại một dự án, nó sẽ báo lỗi. Tuy nhiên, trong image của chúng tôi, vấn đề này đã được khắc phục, vì chúng tôi sử dụng base image Ubuntu mới nhất và cài đặt tất cả các phụ thuộc từ kho chính thức của Ubuntu.

Lưu ý kỹ thuật khác

Khi build image TeX Live (trước 2019), bạn có thể cần chú ý đến các vấn đề sau:
  • Trước TeX Live 2017 chỉ hỗ trợ http/ftp, vì vậy bạn không thể dùng https để tải xuống, trừ khi chỉnh sửa script peal.
  • Trước 2015, chỉ có tệp sha256 được cung cấp, vì vậy bạn không thể dùng sha512 để kiểm tra.
Lần sửa đổi cuối 4 tháng 10, 2026