Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Hostname support for backup container

Abierto
#104 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
48/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
docker, docker-compose, python

Línea de trabajo

Empieza en src/restic_compose_backup/containers.py alrededor de la línea 410, donde se identifica el contenedor de backup a partir de los metadatos de Docker. Reproduce el fallo con el nombre de host personalizado mostrado en el issue y, después, verifica que tanto la configuración predeterminada basada en el ID como la configuración basada en el nombre de host localicen el contenedor de backup sin el error de metadatos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

Hi 👋 ,

currently, stack-back identifies its own container by checking if the container ID starts with the hostname:

if container_data.get("Id").startswith(socket.gethostname()):
    self.this_container = Container(container_data)

This works fine when using Docker's default behavior (hostname = container ID prefix), but fails when a custom hostname is set , for example in docker-compose.yml:

services:
  backup:
    hostname: "${COMPOSE_PROJECT_NAME}-backup"

This results in the error:

ValueError: Cannot find metadata for backup container
Use Case

Setting a custom hostname like ${COMPOSE_PROJECT_NAME}-backup is useful for:

  • Consistent identification across container restarts
  • Better monitoring and metrics (e.g., in Prometheus/Grafana)
  • More readable hostnames in logs and dashboards
Proposed Solution

Extend the container detection logic to support both the original ID-based method and hostname-based detection:

for container_data in all_containers:
    container_id = container_data.get("Id", "")
    container_hostname = container_data.get("Config", {}).get("Hostname", "")
    
    if container_id.startswith(socket.gethostname()) or container_hostname == socket.gethostname():
        self.this_container = Container(container_data)
        break
Benefits
  • Maintains backward compatibility with existing setups
  • Allows users to set custom hostnames for better monitoring
  • No breaking changes to current functionality
Lenguaje dominante
Python
Estrellas
181
Forks
13
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de lawndoc/stack-back

Todos los issues de lawndoc/stack-back

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.