Puedo construir un Dockerfile como
docker build -t deepak/ruby .
Pero para un Dockerfile que no tiene nombre Dockerfile
# DOCKER-VERSION 0.4.8
FROM deepak/ruby
MAINTAINER Deepak Kannan "[email protected]"
RUN ./bin/rails s
digamos que se llama Dockerfile.app
lo que construimos con
docker build -t deepak/app Dockerfile.app
entonces me sale el error
Uploading context 0 bytes
Error build: EOF
EOF
docker build --help
hay una línea donde puede encontrar lo que está buscando: -f, --file string Nombre del Dockerfile (el valor predeterminado es 'PATH / Dockerfile')Respuestas:
Observe que hay un punto
.
al final de ambos comandos.O con una etiqueta:
fuente
docker build -f Dockerfile.consumer
me da un error "docker build" requiere exactamente 1 argumento. Consulte 'docker build --help'. Uso: compilación de docker [OPCIONES] RUTA | URL | -.
) al final del comando anterior?.
es una cosa necesaria. El comando de compilación toma dos argumentos a saber. ruta aDockerfile
& ruta alcontext
directorio. Entonces, podemos hacerlodocker build -t mysupertag -f ./foo/Dockerfile ./foo
Esto funciona
Documentación de compilación de Docker
fuente
El último parámetro para la compilación de la ventana acoplable es la ruta de compilación, cuando lo pones
.
significa que esta es la ruta donde encontrarás el archivoDockerfile
. Cuando lo cambie,Dockerfile.app
intentará buscarDockerfile.app/Dockerfile
, lo cual no es correcto.No estoy seguro de si seguirá funcionando, pero solías poder hacer esto.
Pruébelo y vea si ayuda, si no, tal vez abra un problema de Docker para volver a agregar esta función, o actualice la documentación sobre cómo usar un Dockerfile con un nombre diferente.
Más información aquí: http://docs.docker.io/en/latest/commandline/command/build/
fuente
docker build - < Dockerfile
no me permitirá AGREGAR un archivo local. Pero lo he probado y funcionaPrueba dockerfeed . Utiliza la función docker para crear un contexto a través de stdin. Escribí el guión para abordar exactamente tu problema al que me enfrentaba.
Para reemplazar un Dockerfile con uno diferente, hazlo así:
Y voilá. Dockerfeed está haciendo lo mismo que
docker build
. Empaqueta la fuente con su Dockerfile pero le permite intercambiar el antiguo Dockerfile por el deseado. No se crean archivos en el proceso, no se cambia la fuente. El archivo tar generado se canaliza a la ventana acoplable, que a su vez lo envía al demonio de la ventana acoplable.Actualización: esta era una respuesta válida en los viejos tiempos cuando no había ningún
-f
interruptor disponible. Con la versión 1.5 de Docker se introdujo esta opción. Ahora puede crear un Dockerfile diferente como este:fuente
También puede lograr esto usando docker-compose.
En su docker-compose.yml en la sección de compilación, puede especificar el directorio en el que almacena su dockerfile y su nombre alternativo de la siguiente manera:
docker-compose
fuente
Supongamos que ha instalado correctamente la caja de herramientas de la ventana acoplable, incluidas docker-compose y docker-machine . Este es mi docker-compose.yml
Y esto está bajo Dockerfile
Asegúrese de que esos archivos se encuentren exactamente en la carpeta raíz. Cuando ejecute docker-compose up, creará una imagen para web.
fuente
Mi caso está en el
/tmp
directorio y hay muchos archivos y la ventana acoplable intenta con otros archivos, aunque paso el-f <Dockerfile.foo>
La solución más limpia y fácil (para mí) es (intead las
dockerfeed
respuestas anteriores):fuente
El usuario de Windows debe probar el siguiente comando:
por ejemplo :
fuente