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

642
Vistas
Cómo navegar hacia arriba una carpeta en un dockerfile

Tengo algunos problemas para crear una imagen acoplable debido a la forma en que se ha estructurado el código. El código está escrito en C#, y en una solución hay muchos proyectos que "soportan" la aplicación que quiero construir.

Mi problema es que si coloco el dockerfile en la raíz, puedo compilarlo sin ningún problema, y está bien, pero no creo que sea la forma óptima, porque tenemos algunos otros dockerfiles que también necesitamos compilar y si los pongo todo en la carpeta raíz, creo que terminará desordenado.

Entonces, si coloco el dockerfile en la carpeta con la aplicación, ¿cómo navego a la carpeta raíz para tomar las carpetas que necesito?

Probé con "../" pero desde mi punto de vista no parecía funcionar. ¿Hay alguna forma de hacerlo o cuál es la mejor práctica en este escenario?

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

0

TL;DR

ejecutarlo desde el directorio raíz:

docker build . -f ./path/to/dockerfile


la respuesta larga:

en dockerfile realmente no puedes subir.

por qué

cuando el demonio docker está construyendo su imagen, usa 2 parámetros:

  • su Dockerfile
  • el contexto

el contexto es a lo que te refieres como . en el archivo acoplable. (por ejemplo, como COPY . /app ) ambos afectan la imagen final: el dockerfile determina lo que sucederá. el contexto le dice a la ventana acoplable en qué archivos debe realizar las operaciones que ha especificado en ese archivo acoplable.

así es como lo dicen los documentos:

El contexto de una compilación es el conjunto de archivos ubicados en la RUTA o URL especificada. El proceso de compilación puede hacer referencia a cualquiera de los archivos en el contexto. Por ejemplo, su compilación puede usar una instrucción COPY para hacer referencia a un archivo en el contexto.

por lo tanto, generalmente el contexto es el directorio donde se coloca el Dockerfile. Mi sugerencia es dejarlo donde pertenece. nombre sus dockerfiles según su función ( Dockerfile.dev , Dockerfile.prod , etc.), está bien tener algunos de ellos en el mismo directorio.

el contexto todavía se puede cambiar:

después de todo, tú eres el que especifica el contexto. ya que el comando docker build acepta el contexto y la ruta del archivo docker. cuando ejecuto:

docker build .

de hecho, le estoy dando el contexto de mi directorio actual (he omitido la ruta del archivo docker, por lo que el valor predeterminado es PATH/Dockerfile )

entonces, si tiene un dockerfile en dockerfiles/Dockerfile.dev , debe ubicarse en el directorio que desea como contexto y ejecutar:

docker build . -f dockerfiles/Dockerfile.dev

lo mismo se aplica a la sección de compilación docker-compose (usted especifica allí un contexto y la ruta del archivo docker)

Espero que haya tenido sentido.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar el comando EJECUTAR y después y hacer lo que quiera.

 RUN cd ../ &
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