# Busco en los logs exportados de Railway cualquier timeout en -weight: 500;">apt
grep -E "(-weight: 500;">apt-get|-weight: 500;">apt |dpkg)" railway-build-logs-june.txt | \ grep -E "(timeout|could not|failed|Unable to fetch)" | \ sort | uniq -c | sort -rn
# Busco en los logs exportados de Railway cualquier timeout en -weight: 500;">apt
grep -E "(-weight: 500;">apt-get|-weight: 500;">apt |dpkg)" railway-build-logs-june.txt | \ grep -E "(timeout|could not|failed|Unable to fetch)" | \ sort | uniq -c | sort -rn
# Busco en los logs exportados de Railway cualquier timeout en -weight: 500;">apt
grep -E "(-weight: 500;">apt-get|-weight: 500;">apt |dpkg)" railway-build-logs-june.txt | \ grep -E "(timeout|could not|failed|Unable to fetch)" | \ sort | uniq -c | sort -rn
# Calculo tiempo promedio del step "RUN -weight: 500;">apt-get -weight: 500;">update" por semana
# (datos exportados desde Railway dashboard > Deployments > Build Logs)
awk '/-weight: 500;">apt-get -weight: 500;">update/{-weight: 500;">start=$1} /done/{if(-weight: 500;">start) print $1--weight: 500;">start; -weight: 500;">start=""}' \ railway-build-steps-june.txt | \ awk '{sum+=$1; n++} END {print "Promedio:", sum/n, "segundos"}'
# Output: Promedio: 23.4 segundos
# Calculo tiempo promedio del step "RUN -weight: 500;">apt-get -weight: 500;">update" por semana
# (datos exportados desde Railway dashboard > Deployments > Build Logs)
awk '/-weight: 500;">apt-get -weight: 500;">update/{-weight: 500;">start=$1} /done/{if(-weight: 500;">start) print $1--weight: 500;">start; -weight: 500;">start=""}' \ railway-build-steps-june.txt | \ awk '{sum+=$1; n++} END {print "Promedio:", sum/n, "segundos"}'
# Output: Promedio: 23.4 segundos
# Calculo tiempo promedio del step "RUN -weight: 500;">apt-get -weight: 500;">update" por semana
# (datos exportados desde Railway dashboard > Deployments > Build Logs)
awk '/-weight: 500;">apt-get -weight: 500;">update/{-weight: 500;">start=$1} /done/{if(-weight: 500;">start) print $1--weight: 500;">start; -weight: 500;">start=""}' \ railway-build-steps-june.txt | \ awk '{sum+=$1; n++} END {print "Promedio:", sum/n, "segundos"}'
# Output: Promedio: 23.4 segundos
# Imagen 1: API principal
FROM node:20-bookworm-slim
# "bookworm" es Debian, no Ubuntu — OK, no toca mirrors de Canonical # Imagen 2: Worker de procesamiento
FROM python:3.11-slim
# También Debian base — OK # Imagen 3: Herramienta interna de admin
FROM ubuntu:22.04
# ACA está. Ubuntu directa, APT apunta a archive.ubuntu.com # Imagen 4: Base para scripts de migración de DB
FROM ubuntu:20.04
# Otra más. LTS vieja que nunca actualicé porque "funciona"
# Imagen 1: API principal
FROM node:20-bookworm-slim
# "bookworm" es Debian, no Ubuntu — OK, no toca mirrors de Canonical # Imagen 2: Worker de procesamiento
FROM python:3.11-slim
# También Debian base — OK # Imagen 3: Herramienta interna de admin
FROM ubuntu:22.04
# ACA está. Ubuntu directa, APT apunta a archive.ubuntu.com # Imagen 4: Base para scripts de migración de DB
FROM ubuntu:20.04
# Otra más. LTS vieja que nunca actualicé porque "funciona"
# Imagen 1: API principal
FROM node:20-bookworm-slim
# "bookworm" es Debian, no Ubuntu — OK, no toca mirrors de Canonical # Imagen 2: Worker de procesamiento
FROM python:3.11-slim
# También Debian base — OK # Imagen 3: Herramienta interna de admin
FROM ubuntu:22.04
# ACA está. Ubuntu directa, APT apunta a archive.ubuntu.com # Imagen 4: Base para scripts de migración de DB
FROM ubuntu:20.04
# Otra más. LTS vieja que nunca actualicé porque "funciona"
# Busco en mi registry privado de Railway cuántas imágenes heredan de mi base ubuntu
-weight: 500;">docker image inspect $(-weight: 500;">docker images -q) --format '{{.RepoTags}} {{.Config.Image}}' \ 2>/dev/null | grep -i "juanchi-base"
# Output: 3 imágenes usando juanchi-base:latest como FROM
# Busco en mi registry privado de Railway cuántas imágenes heredan de mi base ubuntu
-weight: 500;">docker image inspect $(-weight: 500;">docker images -q) --format '{{.RepoTags}} {{.Config.Image}}' \ 2>/dev/null | grep -i "juanchi-base"
# Output: 3 imágenes usando juanchi-base:latest como FROM
# Busco en mi registry privado de Railway cuántas imágenes heredan de mi base ubuntu
-weight: 500;">docker image inspect $(-weight: 500;">docker images -q) --format '{{.RepoTags}} {{.Config.Image}}' \ 2>/dev/null | grep -i "juanchi-base"
# Output: 3 imágenes usando juanchi-base:latest como FROM
# En un contenedor de prueba con ubuntu:22.04
# Agrego una entrada /etc/hosts falsa para simular mirrors caídos
-weight: 500;">docker run --add-host=archive.ubuntu.com:127.0.0.1 \ --add-host=security.ubuntu.com:127.0.0.1 \ ubuntu:22.04 \ bash -c "time -weight: 500;">apt-get -weight: 500;">update 2>&1 | tail -5"
# En un contenedor de prueba con ubuntu:22.04
# Agrego una entrada /etc/hosts falsa para simular mirrors caídos
-weight: 500;">docker run --add-host=archive.ubuntu.com:127.0.0.1 \ --add-host=security.ubuntu.com:127.0.0.1 \ ubuntu:22.04 \ bash -c "time -weight: 500;">apt-get -weight: 500;">update 2>&1 | tail -5"
# En un contenedor de prueba con ubuntu:22.04
# Agrego una entrada /etc/hosts falsa para simular mirrors caídos
-weight: 500;">docker run --add-host=archive.ubuntu.com:127.0.0.1 \ --add-host=security.ubuntu.com:127.0.0.1 \ ubuntu:22.04 \ bash -c "time -weight: 500;">apt-get -weight: 500;">update 2>&1 | tail -5"
Err:1 http://archive.ubuntu.com/ubuntu jammy InRelease Could not connect to 127.0.0.1:80 (127.0.0.1). - connect (111: Connection refused)
Err:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Could not connect to 127.0.0.1:80 (127.0.0.1). - connect (111: Connection refused)
Reading package lists... Done
W: Some index files failed to download...
real 0m18.432s
Err:1 http://archive.ubuntu.com/ubuntu jammy InRelease Could not connect to 127.0.0.1:80 (127.0.0.1). - connect (111: Connection refused)
Err:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Could not connect to 127.0.0.1:80 (127.0.0.1). - connect (111: Connection refused)
Reading package lists... Done
W: Some index files failed to download...
real 0m18.432s
Err:1 http://archive.ubuntu.com/ubuntu jammy InRelease Could not connect to 127.0.0.1:80 (127.0.0.1). - connect (111: Connection refused)
Err:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Could not connect to 127.0.0.1:80 (127.0.0.1). - connect (111: Connection refused)
Reading package lists... Done
W: Some index files failed to download...
real 0m18.432s
# Esto falla silenciosamente en mirrors degradados:
RUN -weight: 500;">apt-get -weight: 500;">update && -weight: 500;">apt-get -weight: 500;">install -y -weight: 500;">curl # Esto al menos intenta continuar:
RUN -weight: 500;">apt-get -weight: 500;">update --fix-missing && -weight: 500;">apt-get -weight: 500;">install -y --no--weight: 500;">install-recommends -weight: 500;">curl # Lo que realmente querés si el mirror puede estar caído:
RUN -weight: 500;">apt-get -weight: 500;">update --fix-missing || true && \ -weight: 500;">apt-get -weight: 500;">install -y --no--weight: 500;">install-recommends -weight: 500;">curl 2>/dev/null || \ echo "ADVERTENCIA: -weight: 500;">apt degradado, continuando sin paquetes opcionales"
# Esto falla silenciosamente en mirrors degradados:
RUN -weight: 500;">apt-get -weight: 500;">update && -weight: 500;">apt-get -weight: 500;">install -y -weight: 500;">curl # Esto al menos intenta continuar:
RUN -weight: 500;">apt-get -weight: 500;">update --fix-missing && -weight: 500;">apt-get -weight: 500;">install -y --no--weight: 500;">install-recommends -weight: 500;">curl # Lo que realmente querés si el mirror puede estar caído:
RUN -weight: 500;">apt-get -weight: 500;">update --fix-missing || true && \ -weight: 500;">apt-get -weight: 500;">install -y --no--weight: 500;">install-recommends -weight: 500;">curl 2>/dev/null || \ echo "ADVERTENCIA: -weight: 500;">apt degradado, continuando sin paquetes opcionales"
# Esto falla silenciosamente en mirrors degradados:
RUN -weight: 500;">apt-get -weight: 500;">update && -weight: 500;">apt-get -weight: 500;">install -y -weight: 500;">curl # Esto al menos intenta continuar:
RUN -weight: 500;">apt-get -weight: 500;">update --fix-missing && -weight: 500;">apt-get -weight: 500;">install -y --no--weight: 500;">install-recommends -weight: 500;">curl # Lo que realmente querés si el mirror puede estar caído:
RUN -weight: 500;">apt-get -weight: 500;">update --fix-missing || true && \ -weight: 500;">apt-get -weight: 500;">install -y --no--weight: 500;">install-recommends -weight: 500;">curl 2>/dev/null || \ echo "ADVERTENCIA: -weight: 500;">apt degradado, continuando sin paquetes opcionales"