Добавить дату в URL, чтобы предотвратить кэширование Docker + получить последний коммит из Github - PullRequest
0 голосов
/ 27 мая 2018

У меня есть это в Dockerfile:

RUN npm install -g "https://github.com/ORESoftware/r2g?$(date +%s%N)"

Но это приводит к следующей ошибке HTTP 400:

[docker.r2g]  npm ERR! Error while executing:
[docker.r2g]  npm ERR! /usr/bin/git ls-remote -h -t https://github.com/ORESoftware/r2g%3F1527384219726226800.git
[docker.r2g]  npm ERR! 
[docker.r2g]  npm ERR! fatal: unable to access 'https://github.com/ORESoftware/r2g%3F1527384219726226800.git/': The requested URL returned error: 400
[docker.r2g]  npm ERR! 
[docker.r2g]  npm ERR! exited with error code: 128
[docker.r2g]  
[docker.r2g]  npm ERR! A complete log of this run can be found in:
[docker.r2g]  npm ERR!     /home/node/.npm/_logs/2018-05-27T01_23_41_453Z-debug.log
[docker.r2g]  The command '/bin/sh -c npm install -g "https://github.com/ORESoftware/r2g?$(date +%s%N)"' returned a non-zero code: 1
[docker.r2g]  

Моя цель двоякая:

  1. Попытка не использовать кэш Docker (путем добавления новой даты).
  2. Попытка также получить последнюю версию из Github (путем добавления нового URL).

Кто-нибудь знаеткак это сделать правильно?

Я тоже пробовал эти два:

RUN npm install -g 'https://github.com/ORESoftware/r2g?'"$(date +%s%N)"

и

RUN npm install -g 'https://github.com/ORESoftware/r2g?"$(date +%s%N)"'

и

RUN npm install -g https://github.com/ORESoftware/r2g?"$(date +%s%N)"

безрезультатно.

1 Ответ

0 голосов
/ 28 мая 2018

Я думаю, что один из них должен это сделать:

RUN bash -c 'npm install --loglevel=warn -g "https://raw.githubusercontent.com/oresoftware/tarballs/master/tgz/oresoftware/r2g.tgz?$(date +%s)"'

или

RUN npm install --loglevel=warn -g "https://raw.githubusercontent.com/oresoftware/tarballs/master/tgz/oresoftware/docker.r2g.tgz?$(date +%s)"

Я действительно думаю, что Github не понравился URL с параметром запроса, а нечто это было уродливо.

...