Скажем, у нас есть это в образе докера:
RUN git clone <url>
RUN git pull
RUN npm install
нам нужно, чтобы git pull всегда запускался.Но если package.json не меняется, нам не нужно переустанавливать.
У меня два вопроса - как мы можем заставить git pull работать всегда?Я считаю, что мы можем кэшировать бюст, используя --build-arg
Однако, если git pull всегда запускается, то, согласно докеру, команда npm install
будет действовать.
Мы могли бы сделать одну вещь:используйте некоторую пользовательскую логику для сравнения sha-суммы файлов package.json.
RUN git clone <url>
RUN git pull
ENV package_shasum $(sha1sum package.json)
RUN compare-shasums && npm install
Кто-нибудь знает, как это сделать с помощью Docker?Причина, по которой мы делаем git в Docker, а не за пределами контейнера и копируем файлы в контейнер, заключается в том, чтобы упростить работу с Jenkins.