Puede establecer el nombre de la imagen al crear una imagen personalizada, como esta:
docker build -t dude/man:v2 . # Will be named dude/man:v2
¿Hay alguna manera de definir el nombre de la imagen en Dockerfile, por lo que no tengo que mencionarlo en el docker build
comando?
docker
tags
dockerfile
gvlasov
fuente
fuente
Respuestas:
El etiquetado de la imagen no es compatible dentro del Dockerfile. Esto debe hacerse en su comando de compilación. Como solución alternativa, puede hacer la compilación con un docker-compose.yml que identifica el nombre de la imagen de destino y luego ejecuta un
docker-compose build
. Un ejemplo de docker-compose.yml se vería asíDicho esto, hay un impulso en contra de hacer la compilación con componer ya que eso no funciona con las implementaciones de modo enjambre. Entonces ha vuelto a ejecutar el comando como lo ha indicado en su pregunta:
Personalmente, tiendo a construir con un pequeño script de shell en mi carpeta (build.sh) que pasa cualquier argumento e incluye el nombre de la imagen allí para guardar la escritura. Y para la producción, la construcción es manejada por un servidor ci / cd que tiene el nombre de la imagen dentro del script de la tubería.
fuente
Cómo construir una imagen con nombre personalizado sin usar el archivo yml:
Cómo ejecutar un contenedor con nombre personalizado:
fuente
Dockerfile
directorio en un directorio con el mismo nombre que desea para su imagen, puede usarlodocker build -t $(basename $PWD) .
como comando de compilación. Luego puede usar la búsqueda CTRL-R desde "build" para encontrar y reutilizar el comando y nunca tener que editarlo. También puede convertirlo en un alias si lo desea.Aquí hay otra versión si tiene que hacer referencia a un archivo acoplable específico:
Entonces solo corres
fuente
Puede hacer esto usando 'AS' DESDE ubuntu: 16.04 AS FooImage
fuente
AS
sintaxis especifica el nombre de destino utilizado en una compilación de varias etapas, y este nombre también se puede usar en lugar de una imagen para laCOPY --from
sintaxis dentro de esa compilación de varias etapas. Sin embargo, no especifica el nombre / etiqueta resultante para la compilación misma.