Sto costruendo un'immagine di finestra mobile sul mio Raspberry Pi, che ovviamente richiede del tempo. Il problema qui è che anche i comandi molto semplici nel Dockerfile come l'impostazione di una variabile d'ambiente, usando chmod +x
su un singolo file o esponendo la porta 80, impiegano minuti per completarsi.è molto lenta anche con i comandi semplici
Ecco un estratto della mia Dockerfile:
FROM resin/rpi-raspbian
MAINTAINER felixbr <[email protected]>
RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y python python-dev python-pip python-numpy python-scipy python-mysqldb mysql-server redis-server nginx dos2unix poppler-utils
COPY requirements.txt /app/
RUN pip install -r /app/requirements.txt
COPY . /app
WORKDIR /app
RUN cp /app/nginx-django.cfg /etc/nginx/sites-enabled/default
RUN chmod +x /app/start.sh
ENV DOCKERIZED="true"
CMD ./start.sh
EXPOSE 80
Tenete a mente questo sta usando un'immagine ARMv6
di base, in modo che possa funzionare su un Raspberry Pi e sto usando finestra mobile 1.5.0 costruito per la hypriot Raspberry Pi OS.
Copia i livelli creati per ogni comando o perché ciascuno degli ultimi comandi richiede minuti per essere completato?
Non andare a aiutare molto, ma si potrebbe unire tutti i tuoi istruzioni esegue in una sola riga, quale sarebbe un po 'più efficiente. –
Ho pensato a questo e sicuramente migliorerebbe le prestazioni generali. Tuttavia, non risolvo il problema con ENV, EXPOSE, WORKDIR, ecc., Che è ugualmente cattivo. – felixbr
Nella directory sono presenti file non necessari? Come '.git' perché è un repository git. Aggiungi questo e qualsiasi altra cosa a '.dockerignore' e potresti notare un aumento della velocità. –