Packer: рдбреЙрдХ-рдкреБрд╢ рдкреЛрд╕реНрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдорд╛рдиреНрдп рд░реЗрдкреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ (sha256 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдЬреЗрд╕рди)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдорд╛рд░реНрдЪ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hashicorp/packer

рдмрдЧреНрд╕ рдХреЗ рд▓рд┐рдП:

рдкреИрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ sha256 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рд╕рд╣реА рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде sha рд╕реЗ /var/lib/docker/image/aufs/repositories.json рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рдпрд╣ рдИрд╕реАрдЖрд░ рдХреЛ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрдЯрд░ рдбреЙрдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдкрдпреЛрдЧ: рдбреЙрдХрдЯрд░ рдкреБрд╢ [рд╡рд┐рдХрд▓реНрдк] NAME[:TAG] рд╣рд╛рд▓рд╛рдВрдХрд┐

2016/03/02 16:37:02 рдпреВрдЖрдИ: рдбреЙрдХрд░ (рдбреЙрдХрд░-рдкреБрд╢): рдкреБрд╢рд┐рдВрдЧ: sha256:2e18ee540e6941f218f27d8a38ae5b60bb9aaef3953ef23aa0d4cfa30ac82b35
2016/03/02 16:37:02 рдкреИрдХрд░: 2016/03/02 16:37:02 рдирд┐рд╖реНрдкрд╛рджрди: /usr/bin/docker [рдкреБрд╢ sha256:2e18ee540e6941f218f27d8a38ae5b60bb9aaef3953ef23aa0d4cfa30ac82b35]

рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ sha256 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ sha256 рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕реНрд░реЛрдд рдЬрд┐рдореНрдореЗрджрд╛рд░
https://github.com/mitchellh/packer/blob/master/post-processor/docker-push/post-processor.go#L86 -L102

name := artifact.Id()

if i := strings.Index(name, "/"); i >= 0 {
    // This should always be true because the / is required. But we have
    // to get the index to this so we don't accidentally strip off the port
    if j := strings.Index(name[i:], ":"); j >= 0 {
        name = name[:i+j]
    }
}

ui.Message("Pushing: " + name)
if err := driver.Push(name); err != nil {
    return nil, false, err
}

return nil, false, nil

}

рдкреИрдХрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕, рд╡рд╣реА рддреНрд░реБрдЯрд┐ред
[ рд░реВрдЯ@рдЧреНрд░рд╛рдлреАрди рдкреИрдХрд░_рдЕрдиреНрд╕рд┐рдмрд▓]# рдбреЙрдХрд░ рдкреБрд╢ sha256:82b1e1e0e34c1aa59fe90287812a0867b184c1287313ea04c4dd80971e57e9fe
рдкреБрд╢ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ [docker.io/library/sha256]
рднрдВрдбрд╛рд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ: sha256

  • рдкреИрдХрд░ рд╕рдВрд╕реНрдХрд░рдг
    v0.9
  • рдореЗрдЬрдмрд╛рди рдордВрдЪ
    рдбреЗрдмрд┐рдпрди v8.3
  • PACKER_LOG=1 packer build template.json рд╕реЗ рдбреАрдмрдЧ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯред
    https://gist.github.com/russmac/83a99af39ad2474c2f57
  • рдмрдЧ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯред
    https://gist.github.com/russmac/5beb8fec9b101c005671
post-processodocker question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдк рдЕрдкрдиреЗ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕реНрдХреНрд╡рд╛рдпрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реАрдзреЗ рдмрд┐рд▓реНрдбрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдмрдЬрд╛рдп docker-push рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓ рд░рд╣рд╛ рд╣реИ docker-tag , рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк docker-push рджреЗрдЦрддреЗ рд╣реИрдВ

рдпрджрд┐ рдЖрдк рдбреЙрдХрд░ рдкреЗрдЬ рдкрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпрд╛рдВ рд╣реИрдВред ( [ ] рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯред)

рдпрд╣ рдПрдХ рд╕рд╣рдЬ рд╡рд┐рдлрд▓рддрд╛ рдореЛрдб рдирд╣реАрдВ рд╣реИред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХрд╛рдлреА рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдЦреБрдж рдПрдХ рдмрдЧ рд╣реИред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рд╡реИрдЧреНрд░рд╛рдВрдЯ .box _and_ рдПрдХ .tar рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рдХреЛ v1.2.3 _and_ staging рдпрд╛ рдкреБрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ECS _and_ DockerHub рдкрд░ рдЙрд╕реА рд╕рдордп рдЖрдк рдмрд┐рд▓реНрдб рдХреЛ рджреЛ рдмрд╛рд░ рдЪрд▓рд╛рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкреИрдХрд░ 0.8.6 . рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛

рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдк рдЕрдкрдиреЗ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕реНрдХреНрд╡рд╛рдпрд░ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реАрдзреЗ рдмрд┐рд▓реНрдбрд░ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдмрдЬрд╛рдп docker-push рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓ рд░рд╣рд╛ рд╣реИ docker-tag , рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк docker-push рджреЗрдЦрддреЗ рд╣реИрдВ

рдпрджрд┐ рдЖрдк рдбреЙрдХрд░ рдкреЗрдЬ рдкрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпрд╛рдВ рд╣реИрдВред ( [ ] рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯред)

рдпрд╣ рдПрдХ рд╕рд╣рдЬ рд╡рд┐рдлрд▓рддрд╛ рдореЛрдб рдирд╣реАрдВ рд╣реИред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХрд╛рдлреА рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ рдФрд░ рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдЦреБрдж рдПрдХ рдмрдЧ рд╣реИред

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рд╡реИрдЧреНрд░рд╛рдВрдЯ .box _and_ рдПрдХ .tar рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рдХреЛ v1.2.3 _and_ staging рдпрд╛ рдкреБрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ECS _and_ DockerHub рдкрд░ рдЙрд╕реА рд╕рдордп рдЖрдк рдмрд┐рд▓реНрдб рдХреЛ рджреЛ рдмрд╛рд░ рдЪрд▓рд╛рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

craigsimon picture craigsimon  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jesse-c picture jesse-c  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mvermaes picture mvermaes  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brettswift picture brettswift  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shashanksinha89 picture shashanksinha89  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ