¿Cuál es su experiencia en la parametrización dinámica de archivos Docker?
sobes.tech AI
Respuesta de la IA
Desarrollé plantillas de archivos Docker utilizando variables de entorno y argumentos de compilación.
Aplicando los siguientes métodos:
-
Instrucciones ARG para argumentos de compilación:
FROM ubuntu:latest ARG APP_VERSION RUN echo "Construyendo versión: $APP_VERSION" -
Instrucciones ENV para variables de entorno en tiempo de ejecución:
FROM alpine:latest ENV PORT=8080 CMD ["sh", "-c", "echo Escuchando en el puerto $PORT"] -
Pasar ARG y ENV mediante
--build-argy-edurante la compilación/ejecución:docker build --build-arg APP_VERSION=1.2.0 . docker run -e PORT=9000 my_image -
Uso de compilación multinivel (Multi-stage builds) para transferir valores entre etapas:
# etapa de compilación FROM golang:1.20 as builder ARG BUILD_TAG WORKDIR /app RUN go build -ldflags "-X main.version=$BUILD_TAG" -o app . # etapa final FROM alpine:latest COPY --from=builder /app/app / CMD ["/app"] -
Integración con sistemas CI/CD (por ejemplo, GitLab CI, Jenkins) para sustituir automáticamente parámetros (versión de la aplicación, entorno, claves API) durante la construcción de la imagen o al desplegar el contenedor.
Este enfoque permite crear imágenes Docker más flexibles y reutilizables, adaptadas a diferentes entornos y requisitos, sin necesidad de modificar el propio archivo Docker.