Generate per-game docker-compose examples from structured game data (e.g. ports)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 30/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- docker, json, shell, yaml
- Lĩnh vực
- build-system, devops
Hướng nghiên cứu
Start with generate-dockerfiles.sh and generate-docker-compose.sh, which read serverlist.csv and pass four separate environment variables to the templates. Then check the default port values in lgsm/config-default/config-lgsm/<shortname>server/_default.cfg and the publish workflow's matrix. Done means each game gets one structured record that reaches the templates as game.*, with its default ports in the compose output, and the matrix and image names stay unchanged. Reading PR #103 first is worthwhile, since it covers part of this design.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Idea
Generate each game's docker-compose example (and Dockerfile, where useful) from richer per-game data, so the examples are correct for that game out of the box. For example, publish the game's default ports rather than a generic example.
Today
generate-dockerfiles.sh and generate-docker-compose.sh read LinuxGSM's serverlist.csv, which has only four fields per game: shortname, server name, game name and distro. The templates get those as separate environment variables, so there is nothing game-specific to put in the compose examples beyond the name and image tag.
Possible approach
- Build one structured record per game (for example JSON). Start with the four
serverlist.csvfields, and add data read from LinuxGSM, such as default ports fromlgsm/config-default/config-lgsm/<shortname>server/_default.cfg. - Pass each game's record to the Jinja templates as one object (
game.shortname,game.ports, and so on). - Keep the publish workflow's matrix as a list (
{"include":[{"shortname":"..."}]}), thedockerfiles/Dockerfile-<shortname>names, and theghcr.iobase image.
Background
#103 (B13rg, 2024) started the refactor towards per-game JSON records but stopped before adding any new data, and it no longer fits the current generator and workflow. Its JSON conversion with yq and its game.* template variables are a useful starting point.
- Ngôn ngữ chính
- Shell
- Star
- 345
- Fork
- 25
- Merge trung bình
- 12 giờ 12 phút
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của GameServerManagers/docker-gameserver
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 51/100
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
GameServerManagers/docker-gameserver#144 · 1 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
GameServerManagers/docker-gameserver#142 · 2 bình luận ·
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 48/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
GameServerManagers/docker-gameserver#113 · 1 bình luận ·
Tất cả issue của GameServerManagers/docker-gameserver
Issue tương tự
-
Hyprland 0.57: monitor-workspaces reconcile errors on every start and reload when a named workspace exists (workspace.id is nil)Có thể đã có người làm @jasasonc đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
priority middle
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 62/100
KATO-Hiro/AtCoderClans#12940 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Add Support for Ubuntu 26.04 LTSĐang mởneeds-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
metal3-io/metal3-dev-env#1741 · 1 bình luận ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100