假设您有相当大的要求。
当您修改requirements.pip时,构建Docker镜像会花费很多时间,因为它必须以requirements.pip
下载并安装所有软件包
修改长度requirements.pip
时,有没有一种方法可以加快docker镜像的构建过程?
我的 docker
....
COPY ./momsite/requirements.pip /requirements.pip
RUN pip install -r /requirements.pip \
&& rm -rf /root/.cache
COPY ./momsite /app/momsite
COPY ./compose/production/web/etc /etc
COPY ./compose/production/web/start.sh /
RUN chmod +x /start.sh
WORKDIR /app
RUN chown www-data:www-data /app/momsite/reload
CMD ["/start.sh"]
需求点
amqp==2.1.4
anyjson==0.3.3
apns2==0.3.0
argh==0.24.1
arrow==0.5.4
asgi-redis==0.14.1
asgiref==3.2.3
asn1crypto==0.22.0
astroid==1.2.1
async-timeout==3.0.1
attrs==19.3.0
autobahn==19.10.1
Automat==0.7.0
autopep8==1.2.1
awscli==1.10.46
Babel==2.3.4
BabelDjango==0.2.2
backcall==0.1.0
backports-abc==0.4
backports.csv==1.0.7
backports.shutil-get-terminal-size==1.0.0
backports.ssl-match-hostname==3.4.0.2
bcdoc==0.12.2
beautifulsoup4==4.6.0
billiard==3.5.0.2
bleach==2.1.1
boto==2.42.0
boto3==1.9.146
botocore==1.12.146
braintree==3.24.0
cachetools==3.1.0
celery==4.0.2
certifi==2018.11.29
cffi==1.10.0
channels==2.3.1
chardet==3.0.4
cluster==1.1.2
colorama==0.3.3
confusable-homoglyphs==3.2.0
constantly==15.1.0
contextlib2==0.4.0
coreapi==2.3.3
coreschema==0.0.4
cron-descriptor==1.2.5
croniter==0.3.12
cryptography==2.8
cssselect==0.9.1
cssutils==1.0.1
cycler==0.10.0
Cython==0.24
daphne==2.3.0
dateutils==0.6.6
decorator==4.1.2
defusedxml==0.5.0
Delorean==0.4.1
derpconf==0.7.3
diff-match-patch==20121119
dj-database-url==0.3.0
dj-email-url==0.0.4
Django==2.2.5
django-absolute==0.3
django-admin-rangefilter==0.3.8
django-advanced-filters==1.1.1
django-annoying==0.9.0
django-appconf==1.0.2
django-autocomplete-light==3.3.5
-e git://github.com/justinmayer/django-autoslug.git@4dc75083d84265e019a900d636273c731457193d#egg=django_autoslug
django-avatar==2.0
django-baton==1.3.6
django-bower==5.0.1
django-braces==1.13.0
django-cache-url==1.0.0
django-cacheops==3.2.1
django-categories==1.6.1
django-celery-results==1.0.1
django-classy-tags==0.5
django-compat==1.0.15
django-configurations==0.8
django-constance==2.0.0
django-cors-headers==0.12
django-countries==3.4.1
django-crispy-forms==1.7.2
django-dashing==0.3
django-db-readonly==0.3.2
django-debug-panel==0.8.3
django-debug-toolbar==2.0
django-debug-toolbar-line-profiler==0.4.0
... total 383 line
最佳答案
您可以将自己的需求划分为不同的文件,这些需求不太可能发生变化,而那些需求最可能发生变化。
然后,您有两个不同的RUN
阶段,例如
RUN pip install -r less_likely_to_change.txt
RUN pip install -r most_likely_to_change.txt
这将在您最需要的地方创建一个图层,因此,您将加快处理过程,因为您不会那么频繁地更改
less_likely_to_change.txt
。关于python - Docker和Python,当您的requirements.pip列表很大时加快速度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58645433/