Мне пришлось добавить
export GOROOT=/usr/local/Cellar/go/1.10.1/libexec
в мой ~ / .bash_profile в Mac OS X
Я все еще изучаю докер, но вы уверены, что это root.json , в который он смотрит, а не root.json .
Исходя из приведенной здесь конфигурации, он должен искать в roots.json список доверенных сертификатов.
Возможно, вы нажимаете не на тот файл, чтобы определить свои корни, или у вас может быть просто опечатка в вашем посте.
В любом случае это полезно: https://github.com/cirocosta/docker-cli/blob/master/vendor/github.com/theupdateframework/notary/trustpinning/certs.go
Как эти ошибки генерируются, видно там с комментариями, почему эти ошибки происходят.
Например, относительно вашей ошибки ротации ключей:
// ErrRootRotationFail возвращается, когда нам не удается выполнить полную ротацию корневого ключа // из-за невозможности добавить новый корневой сертификат или удалить старые
blockquote>
Это только локально поврежденное состояние, верно? Вы должны быть в состоянии исправить это с помощью нотариуса server.example.com/test1
.
Исправление, которое я хочу получить, - это ленивая инициализация, когда больше не нужно явно вызывать нотариус init. В рамках отложенной инициализации мы всегда запрашиваем у сервера существующие данные, прежде чем предположить, что они должны быть созданы локально.
Более короткое исправление может заключаться в проверке сервера или, если нет сетевого подключения, локального кэша для существующих данных. На данный момент я считаю, что init предполагает, что репо не существует, и перезаписывает любой существующий кеш.
Также, пожалуйста, убедитесь, что настроили DNS и сделали запись хоста в файле хоста.
Для целей политики подписи UCP, настроенной через раздел «Доверие к контенту» в настройках администратора, необходимо, чтобы мы могли идентифицировать изображение, подписанное членом организации UCP. Мы делаем это, используя клиентские пакеты, которые вы можете загрузить для своей учетной записи пользователя из UCP. Пакеты клиента содержат файл «cert.pem», представляющий собой сертификат x509, подписанный центром сертификации UCP, и файл «key.pem», представляющий собой закрытый ключ, сопоставленный с сертификатом.
Вам необходимо создать делегирование «цели / релизы» и еще одну делегацию, например, «Target / my_user» и добавить «cert.pem» в качестве открытого ключа подписи для обоих. Когда другая служба затем проверяет данные доверия, они могут определить, что сертификат принадлежит члену организации UCP, и их подписи должны быть доверенными. Затем вам нужно импортировать key.pem, чтобы он был доступен для подписи при нажатии.
Документация 23 предоставляет больше информации и специальных команд для выполнения, в частности, раздел «Инициализация репо».