Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Generate per-game docker-compose examples from structured game data (e.g. ports)

Đang mở
#161 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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ả

enhancement

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.csv fields, and add data read from LinuxGSM, such as default ports from lgsm/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":"..."}]}), the dockerfiles/Dockerfile-<shortname> names, and the ghcr.io base 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

Mở trong Codespaces

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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của GameServerManagers/docker-gameserver

Tất cả issue của GameServerManagers/docker-gameserver

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.