Docker
Ordenamiento de contenidos de Dockerfile
Buscar..
Observaciones
- Declaración de la imagen base (
FROM) - Metadatos (eg
MAINTAINER,LABEL) - Instalar dependencias del sistema (por ejemplo,
apt-get install,apk add) - Copiar archivos dependencias de aplicaciones (por ejemplo
bower.json,package.json,build.gradle,requirements.txt) - Instalar dependencias de aplicaciones (por ejemplo,
npm install,pip install) - Copiando todo el código base
- Configuración de configuraciones de tiempo de ejecución predeterminadas (por ejemplo,
CMD,ENTRYPOINT,ENV,EXPOSE)
Estos pedidos se realizan para optimizar el tiempo de construcción utilizando el mecanismo de almacenamiento en caché incorporado de Docker.
Regla de los pulgares:
Las partes que cambian a menudo (por ejemplo, código base) deben colocarse cerca del fondo del archivo Docker, y viceversa. Las partes que rara vez cambian (por ejemplo, las dependencias) deben colocarse en la parte superior.
Dockerfile simple
# Base image FROM python:2.7-alpine # Metadata MAINTAINER John Doe <[email protected]> # System-level dependencies RUN apk add --update \ ca-certificates \ && update-ca-certificates \ && rm -rf /var/cache/apk/* # App dependencies COPY requirements.txt /requirements.txt RUN pip install -r /requirements.txt # App codebase WORKDIR /app COPY . ./ # Configs ENV DEBUG true EXPOSE 5000 CMD ["python", "app.py"]
MAINTAINER quedará en desuso en Docker 1.13, y deberá reemplazarse utilizando LABEL. ( Fuente )
Ejemplo: LABEL Maintainer = "John Doe [email protected]"
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow