Как протолкнуть изображение с помощью докероде? (изображение не выдвинуто, но без ошибок) - PullRequest
0 голосов
/ 18 января 2019

У меня есть этот код:

import * as Docker from 'dockerode'
const docker = new Docker()
const remoteDockerImage = docker.getImage(`${awsRepoUrl}:${version}`)

await remoteDockerImage.push({
  authconfig: { base64: 'auth token from aws' },
  tag: version,
})

После того, как я запустил это, нет ошибки, даже если я поставлю on("error") на возвращении .push.

И это создает следующее в журналах докера

[18:47:06.056][ApiProxy       ][Info   ] time="2019-01-18T18:47:06+08:00" msg="proxy >> POST /images/284135xxxxxx.dkr.ecr.us-east-1.amazonaws.com/xxxx:v0.1.200/push?tag=v0.1.200\n"
[18:49:18.018][DnsUpdater     ][Error  ] Unable to update dns settings: Value cannot be null.
Parameter name: first
[18:49:18.018][DnsUpdater     ][Info   ] Network configuration change detected
[18:49:19.068][DnsUpdater     ][Error  ] Unable to update dns settings: Value cannot be null.

И ничего не происходит, изображение не выдвигается. не уверен, что это за ошибки DNS ...

Но теперь, когда я иду к строке CMD и запускаю docker login -u AWS -p secretAWSkey https://284135xxxxxx.dkr.ecr.us-east-1.amazonaws.com, а затем docker push my-image я вижу в журналах:

[18:57:17.517][ApiProxy       ][Info   ] time="2019-01-18T18:57:17+08:00" msg="proxy << POST /v1.39/auth (5.1241041s)\n"
[18:57:17.694][ApiProxy       ][Info   ] time="2019-01-18T18:57:17+08:00" msg="proxy >> GET /_ping\n"
[18:57:17.699][ApiProxy       ][Info   ] time="2019-01-18T18:57:17+08:00" msg="proxy << GET /_ping (3.9935ms)\n"
[18:57:18.107][ApiProxy       ][Info   ] time="2019-01-18T18:57:18+08:00" msg="proxy >> POST /v1.39/images/284135xxxxxx.dkr.ecr.us-east-1.amazonaws.com/app-repo/push?tag=v0.1.206\n"

Теперь изображение загружено и работает.

Различия (работает против не работает):

  • /v1.39/images/ против /images/
  • звонок на /v1.39/auth против звонка

Не уверен, что делать, так как API для Dockerode действительно плох или отсутствует, и я не могу понять, как это сделать. Любая помощь приветствуется. спасибо

...