Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

631
Vistas
FROM...AS en Dockerfile no funciona como esperaba

Estoy aprendiendo a usar Docker, así que tengan paciencia conmigo.

Quiero crear una imagen acoplable que se construya sobre otra imagen acoplable que ya he creado. En mi dockerfile, me refiero a una versión específica de la imagen base, pero en aras de la mantenibilidad, solo quiero mencionar esa versión solo una vez en el dockerfile. La documentación de dockerfile parece sugerirme que puedo usar la palabra clave 'AS' para asignar un nombre simbólico a la etiqueta de versión específica. En el parámetro --from a la siguiente instrucción COPY, debería poder usar el nombre simbólico en lugar de la etiqueta image:version específica.

Este es mi archivo docker:

 FROM base:2.0 AS my_base WORKDIR /child2 COPY --from=my_base /base /child2 COPY . /child2 CMD ["python", "-u", "child2.py"]

Cuando construyo usando este dockerfile con

 docker build -t child2 .

Obtuve el siguiente error:

 Step 1/5 : FROM base:2.0 AS my_base ---> c5e2be45da55 Step 2/5 : WORKDIR /child2 ---> Using cache ---> 1b5a4ad816c9 Step 3/5 : COPY --from=my_base /base /child2 invalid from flag value my_base: pull access denied for my_base, repository does not exist or may require 'docker login'

Utilicé 'docker login', pero obtuve exactamente el mismo error nuevamente.

¿Cometo algún error en la sintaxis del dockerfile, o mi suposición sobre el uso de la palabra clave AS es simplemente incorrecta?

Estoy usando Docker versión 18.09.2 en Windows 10.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El FROM...AS es para compilaciones de varias etapas :

Con las compilaciones de varias etapas, usa varias instrucciones FROM en su Dockerfile. Cada instrucción FROM puede usar una base diferente, y cada una de ellas comienza una nueva etapa de la construcción. Puede copiar artefactos de forma selectiva de una etapa a otra, dejando atrás todo lo que no desea en la imagen final. Para mostrar cómo funciona esto, adaptemos el Dockerfile de la sección anterior para usar compilaciones de varias etapas.

Su dockerfile solo tiene una etapa, sin sentido para usarlo, un caso de uso válido es el siguiente:

 FROM golang:1.7.3 AS builder WORKDIR /go/src/github.com/alexellis/href-counter/ RUN go get -d -v golang.org/x/net/html COPY app.go . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=builder /go/src/github.com/alexellis/href-counter/app . CMD ["./app"]

Aquí, el binario construido en la primera etapa ( builder ) podría copiarse a la segunda etapa que con una nueva base ( FROM alpine:latest ). El beneficio es: puede reducir la configuración de la cadena de herramientas golang en la segunda etapa, solo use el binario de la primera etapa.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda