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