> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/texlive/vi/texlive-trong-docker.md).

# TeXLive trong Docker

### 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 cô lập. Bằng cách gói ứng dụng cùng với tất cả các phụ thuộc cần thiết, mộ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ủ sản xuất.

TeX Live rất mạnh nhưng lớn và nhạy cảm với các khác biệt ở cấp hệ thống. Việc đóng gói TeX Live bên trong một ảnh Docker giúp chuỗi công cụ LaTeX trở nên 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 hạn chế để ngăn người dùng thực thi các lệnh shell tùy ý (ví dụ thông qua `\write18` hoặc shell escape). Sự cô lập này bảo vệ hệ thống máy chủ và tránh việc truy cập ngoài ý muốn vào hệ thống tệp bên dưới hoặc các công cụ của container như `bash`.

### Phiên bản đầy đủ TeXLive

[TeXLive-Full@ayaka-notes](https://github.com/ayaka-notes/texlive-full/) là một bản đầy đủ tính năng **ảnh Docker TeXLive** được thiết kế đặc biệt cho Overleaf Server Pro, Overleaf Pro, cũng như các môi trường biên dịch LaTeX độc lập, như CI hoặc pipeline.

Ảnh này nhằm 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, để giảm thiểu lỗi biên dịch do thiếu gói hoặc phông chữ.

Tính năng:

* 🚀 Hỗ trợ cả kiến trúc máy chủ x86\_64 và arm64
* 📦 Cài đặt TeXLive đầy đủ và được tối ưu hóa
* 🧩 Các phông chữ và tiện ích phổ biến được cài sẵ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 cập nhật thường xuyên với các bản phát hành TeXLive mới nhất
* 🏷 Nhiều thẻ 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 Overleaf Pro

[TeXLive-Full@ayaka-notes](https://github.com/ayaka-notes/texlive-full/) hỗ trợ **overleaf pro**bạn có thể sử dụng các biến môi trường sau để `config/variables.env` tệp nếu bạn là [người dùng toolkit](https://github.com/overleaf/toolkit).

Ví dụ:

{% code title="config/variables.env" overflow="wrap" %}

```dotenv
ALL_TEX_LIVE_DOCKER_IMAGES=ghcr.io/ayaka-notes/texlive-full:2025.1, ghcr.io/ayaka-notes/texlive-full:2024.1
ALL_TEX_LIVE_DOCKER_IMAGE_NAMES=Texlive 2025, Texlive 2024
TEX_LIVE_DOCKER_IMAGE=ghcr.io/ayaka-notes/texlive-full:2025.1
```

{% endcode %}

### Phiên bản TeXLive

Nhờ GitHub Actions, chúng tôi có thể build song song tất cả các ảnh tex, bao gồm:

* `ghcr.io/ayaka-notes/texlive-full:2026.1` (Cũng `thẻ` )
* `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ữ bản sao từ [texlive info](https://texlive.info/tlnet-archive/)nơi bao gồm hầu như tất cả các ảnh texlive từ 1996 đến 2026. Và nhờ Dockerfile của Overleaf, chúng tôi có thể build dự án này nhanh hơn.

> Vì sao texlive 2019 và các bản cũ hơn không được hỗ trợ?
>
> Việc duy trì những ảnh như vậy còn khó hơn nhiều. Và chúng tôi tin rằng bạn có thể không còn dùng chúng nữa vì chúng quá cũ. Nếu bạn cần, hãy mở một issue để cho tôi biết.

### Thành phần đi kèm

Các gói sau được chứa trong ảnh Docker.

* Tất cả các gói TeXLive (trong 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 chứa trong ảnh Docker.

* [Google Fonts](https://fonts.google.com/)
* [Microsoft msttcorefonts](https://packages.ubuntu.com/jammy/ttf-mscorefonts-installer)
* [Các phông chữ được Overleaf hỗ trợ](https://www.overleaf.com/learn/latex/Questions/Which_OTF_or_TTF_fonts_are_supported_via_fontspec%3F)

{% hint style="warning" %}
Vui lòng xác nhận liệu các phông chữ liên quan có thể được 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** cho 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. Một khi bạn tải ảnh xuống, bạn đồng ý với điều này một cách tự động.
{% endhint %}

### Giấy phép

MIT

### Vấn đề

<details>

<summary>Vấn đề 01: Lỗi thiếu bộ nhớ đệm phông chữ</summary>

Khi Overleaf biên dịch dự án LaTeX, nếu xảy ra 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**; đó là vì khi thiếu một phông chữ, TeXLive sẽ cố gắng **tạo lại toàn bộ bộ nhớ đệm phông chữ**. Đây là một quá trình tốn thời gian.

Trong ảnh của chúng tôi, chúng tôi đã tạo sẵn bộ nhớ đệm phông chữ, chúng tôi khắc phục vấn đề này bằng [commit này](https://github.com/ayaka-notes/texlive-full/commit/0cb66b0dc8b82be628cf6999cfd659d9784e132f)

</details>

<details>

<summary>Vấn đề 02: Sync TeX cực kỳ chậm</summary>

Khi bạn sử dụng ảnh này trong ShareLaTeX, bạn có thể thấy rằng việc đồng bộ TeX cực kỳ chậm.

Xem: <https://github.com/overleaf/overleaf/issues/1150>chỉ cần tắt HTTP 2.0.

</details>

<details>

<summary>Vấn đề 03: Lỗi biên dịch lại với ảnh Texlive chính thức</summary>

Nếu bạn sử dụng ảnh Texlive chính thức trên Docker Hub `texlive/texlive`bạn có thể thấy rằng khi biên dịch lại một dự án, nó sẽ báo lỗi. Tuy nhiên, trong ảnh của chúng tôi, vấn đề này đã được khắc phục. Bởi vì chúng tôi sử dụng ảnh nền 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.

</details>

### Nhắc nhở kỹ thuật khác

Khi build ảnh TeXLive (trước năm 2019), bạn có thể cần chú ý đến các vấn đề sau:

* Chỉ `http`/`ftp` được hỗ trợ trước texlive 2017, vì vậy bạn không thể dùng `https` để tải xuống, trừ khi bạn sửa `peal` script.
* Trước năm 2015, chỉ có tệp sha256 được cung cấp. Vì vậy bạn không thể dùng sha512 để kiểm tra.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/texlive/vi/texlive-trong-docker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
