En mi Dockerfiletengo:
ADD ../../myapp.war /opt/tomcat7/webapps/
Ese archivo existe ya que ls ../../myapp.warme devuelve el archivo correcto, pero cuando ejecuto sudo docker build -t myapp .tengo:
Step 1 : ADD ../../myapp.war /opt/tomcat7/webapps/
2014/07/02 19:18:09 ../../myapp.war: no such file or directory
¿Alguien sabe por qué y cómo hacerlo correctamente?

Respuestas:
Puede compilar el Dockerfile desde el directorio principal:
fuente
-fno parece estar en desuso por los documentos -> Especifique un Dockerfile (-f) : docs.docker.com/engine/reference/commandline/build/…Desafortunadamente, (por razones prácticas y de seguridad, supongo), si desea agregar / copiar contenido local, debe ubicarse bajo la misma ruta raíz que
Dockerfile.De la documentación :
EDITAR: ahora hay una opción (
-f) para establecer la ruta de su Dockerfile; puede usarse para lograr lo que desea, vea la respuesta de @Boedy a continuación.fuente
Con docker-compose, puede configurar la carpeta de contexto:
fuente
Agregar algunos fragmentos de código para admitir la respuesta aceptada.
Estructura de directorios :
Entrada del archivo Docker:
Comando utilizado para construir la imagen acoplable
fuente
install_x.shtambién?La solución para quienes usan Composer es usar un volumen que apunte a la carpeta principal:
Pero estoy bastante seguro de que se puede hacer jugando con volúmenes en Dockerfile .
fuente
Como
-fcausó otro problema, desarrollé otra solución.La
-fbandera no resolvió mi problema porque mionbuildimagen busca un archivo en una carpeta y tuvo que llamar así:-f foo/bar/Dockerfile foo/baren vez de
-f foo/bar/Dockerfile .También tenga en cuenta que esta es la única solución para algunos casos como
-fmarcafuente