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

Profile [env.*] cannot override LOCALSTACK_HOST (launcher value appended last)

Abierto Apto para principiantes
#538 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
docker, go
Área
cli, devtools

Línea de trabajo

Empieza en internal/container/start.go, alrededor del ensamblado del entorno en las líneas 266–296; compara la comprobación de SF_S3_ENDPOINT y la advertencia de MAIN_CONTAINER_NAME con la forma en que se añade LOCALSTACK_HOST. Revisa las pruebas cercanas sobre la construcción del entorno del contenedor y luego añade cobertura para un LOCALSTACK_HOST proporcionado por el perfil. Se considera terminado cuando se respeta el valor del perfil o una advertencia clara explica que se ignora, y el comportamiento elegido está probado.

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

Descripción

Observed

Setting LOCALSTACK_HOST in a config [env.*] profile has no effect. The container receives the variable twice — the profile value first, lstk's computed value second — and Docker's last-wins semantics keep lstk's. docker inspect on a type = "snowflake" container started with a profile containing LOCALSTACK_HOST = "sf.example.test:4599" shows both entries; the emulator sees localhost.localstack.cloud:4599. Nothing warns that the profile value was dropped.

Where

internal/container/start.go on main (d9c83037):

  • :276 env := resolvedEnv — the profile's variables come first;
  • :281-285 env = append(env, "GATEWAY_LISTEN=…", "MAIN_CONTAINER_NAME=…", "LOCALSTACK_HOST="+endpoint.Hostname+":"+c.Port) — lstk's own value is appended unconditionally after them.

The two neighbours already handle this collision: SF_S3_ENDPOINT (:292) is appended only when the profile did not set it (!envHasKey(resolvedEnv, "SF_S3_ENDPOINT")), and MAIN_CONTAINER_NAME (:266-275) emits a warning saying the profile value is ignored. LOCALSTACK_HOST does neither, so the profile value vanishes silently. (A LOCALSTACK_HOST exported in the host shell does win, because hostEnv is appended at :296 after lstk's line — so the two configuration channels behave differently.)

Context

Recorded in September 2026 while diagnosing a snowflake-next result-chunk 404 under lstk (the emulator advertised the host lstk injected but its hostname gate did not route it; that was fixed on the emulator side, which now routes any host it is told to advertise). For the default flow this is harmless: the value lstk injects, localhost.localstack.cloud:<published port>, is the right one. It only matters when a user needs a different advertised host — a non-loopback hostname for clients on other machines, or a reverse-proxy name — and reaches for the documented [env.*] mechanism to set it.

Expected

Either the profile wins — append lstk's LOCALSTACK_HOST only when the profile did not set it, with the same envHasKey guard SF_S3_ENDPOINT uses — or lstk warns that the profile value is ignored, as it does for MAIN_CONTAINER_NAME, and the config docs state that LOCALSTACK_HOST is launcher-owned.

Reproduce
[[containers]]
type = "snowflake"
port = "4599"
env = ["custom"]

[env.custom]
LOCALSTACK_HOST = "sf.example.test:4599"

lstk start, then docker inspect <container> --format '{{json .Config.Env}}' → both LOCALSTACK_HOST=sf.example.test:4599 and LOCALSTACK_HOST=localhost.localstack.cloud:4599, in that order; inside the container echo $LOCALSTACK_HOST prints the latter.

Lenguaje dominante
Go
Estrellas
37
Forks
8
Merge medio
2 d 10 h
PR fusionados (30 d)
37

Preparar el entorno

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.

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.