Generate per-game docker-compose examples from structured game data (e.g. ports)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- docker, json, shell, yaml
- Área
- build-system, devops
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Shell
- Estrellas
- 345
- Forks
- 25
- Merge medio
- 12 h 12 min
- PR fusionados (30 d)
- 9
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de GameServerManagers/docker-gameserver
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
GameServerManagers/docker-gameserver#144 · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
GameServerManagers/docker-gameserver#142 · 2 comentarios ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
GameServerManagers/docker-gameserver#113 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
GameServerManagers/docker-gameserver#100 · 2 comentarios ·
Todos los issues de GameServerManagers/docker-gameserver
Issues similares
-
"SFrame-internal"Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
acmesh-official/acme.sh#7356 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
alunduil/alunduil-infrastructure#918 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
alunduil/alunduil-chezmoi#1048 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
YunoHost-Apps/coturn_ynh#49 ·