代码之家  ›  专栏  ›  技术社区  ›  Totty.js

如何使用Dockrode推送图像?(图像未被推送但没有错误)

  •  0
  • Totty.js  · 技术社区  · 7 年前

    我有这个代码:

    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 .

    这将在docker日志中创建以下内容

    [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.
    

    但现在当我进入命令行,我运行 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

    不知道该怎么做,因为Dockrode的api非常糟糕或者缺失,我不知道该怎么做。感谢任何帮助。谢谢您

    0 回复  |  直到 7 年前
        1
  •  0
  •   Clovel    5 年前

    根据 dockerode README.md authconfig

    请看一下 pull https://github.com/apocas/dockerode/blob/master/README.md#pull-from-private-repos

    推荐文章