Buduję obraz doka na moim Raspberry Pi, co oczywiście zajmuje trochę czasu. Problem polega na tym, że nawet bardzo proste polecenia w pliku Dockerfile, takie jak ustawienie zmiennej środowiskowej, użycie chmod +x
na jednym pliku lub udostępnienie portu 80 zajmuje kilka minut.kompilacja dockera jest bardzo powolna, nawet przy prostych poleceniach
Oto fragment mojego 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
Pamiętaj, to jest przy użyciu ARMv6
bazowy obrazu, dzięki czemu można go uruchomić na Raspberry Pi i używam docker 1.5.0 zbudowany dla hypriot Raspberry Pi OS.
Czy to jest kopiowanie wbudowanych warstw dla każdego polecenia lub dlaczego wykonanie wszystkich ostatnich kilku poleceń zajmuje kilka minut?
nie pomoże dużo, ale można połączyć wszystkie swoje instrukcje napotkasz jednej linii, który byłby nieco bardziej wydajny. –
Myślałem o tym i na pewno poprawiłoby to ogólną wydajność. Nie rozwiązuję jednak problemu z ENV, EXPOSE, WORKDIR itp., Który jest równie zły. – felixbr
Czy masz niepotrzebne pliki w katalogu? Jak '.git', ponieważ jest to repozytorium git. Dodaj to i wszystko do '.dockerignore' i możesz zauważyć przyspieszenie. –