Example #1
0
func (b *DockerBuilder) PushImage(build *Build, stream *streams.Output) error {
	name := fmt.Sprintf("%s/%s", b.registryURL, build.RepositoryName)

	stream.Write([]byte(fmt.Sprintf("Pushing %s:%s...", name, build.ImageTag)))
	err := b.dockerClient.PushImage(docker.PushImageOptions{
		Name:         name,
		Tag:          build.ImageTag,
		OutputStream: stream,
	}, docker.AuthConfiguration{})

	if err != nil {
		return err
	}

	stream.Write([]byte(fmt.Sprintf("Pushing %s:latest...", name)))
	err = b.dockerClient.PushImage(docker.PushImageOptions{
		Name:         name,
		Tag:          "latest",
		OutputStream: stream,
	}, docker.AuthConfiguration{})

	return err
}