Skip to content

Deis does a duplicate build after pushing, uses different registry #521

@bcokert

Description

@bcokert

When I deploy my app in deis (a Dockerfile app), it builds twice. The first time succeeds, and the second time fails. This doesn't seem to affect the resulting application (since it fails on step 1 of the dockerfile), but it is still quite annoying.

> git push deis BRANCH
... regular output
Step 11 : CMD
 ---> Running in da8aa48f52c6
 ---> 39fc0d76f49b
Removing intermediate container da8aa48f52c6
Successfully built 39fc0d76f49b
Pushing to registry
Build complete.->
Launching App...
...
Done, enlightning-staging:v5 deployed to Workflow

Use 'deis open' to view this application in your browser

To learn more, use 'deis help' or visit https://deis.com/

Starting build... but first, coffee!
Step 1 : FROM companyRegistry/base/ubuntu-14.04:latest
Get https://companyRegistry/v1/_ping: dial tcp 52.0.154.17:443: i/o timeout
remote: 2017/07/20 18:41:14 Error running git receive hook [Build pod exited with code 1, stopping build.]
To ssh://internalDeisBuilder:2222/enlightning-staging.git
! [remote rejected] DEPLOY-PRODUCTION-2.0.1 -> master (pre-receive hook declined)
 ! [remote rejected] v0.2.0 -> v0.2.0 (pre-receive hook declined)
 ! [remote rejected] v0.2.1 -> v0.2.1 (pre-receive hook declined)
 ! [remote rejected] v0.2.2 -> v0.2.2 (pre-receive hook declined)
 ! [remote rejected] v0.2.3 -> v0.2.3 (pre-receive hook declined)
 ! [remote rejected] v0.3.0 -> v0.3.0 (pre-receive hook declined)
 ! [remote rejected] v0.4.0 -> v0.4.0 (pre-receive hook declined)
 ! [remote rejected] v0.4.1 -> v0.4.1 (pre-receive hook declined)
 ! [remote rejected] v0.4.2 -> v0.4.2 (pre-receive hook declined)
 ! [remote rejected] v0.4.3 -> v0.4.3 (pre-receive hook declined)
 ! [remote rejected] v0.4.4 -> v0.4.4 (pre-receive hook declined)
 ! [remote rejected] v0.4.5 -> v0.4.5 (pre-receive hook declined)
 ! [remote rejected] v0.5.0 -> v0.5.0 (pre-receive hook declined)
 ! [remote rejected] v0.6.0 -> v0.6.0 (pre-receive hook declined)
 ! [remote rejected] v0.7.0 -> v0.7.0 (pre-receive hook declined)
 ! [remote rejected] v0.8.0 -> v0.8.0 (pre-receive hook declined)
 ! [remote rejected] v0.8.1 -> v0.8.1 (pre-receive hook declined)
 ! [remote rejected] v0.8.2 -> v0.8.2 (pre-receive hook declined)
 ! [remote rejected] v0.9.0 -> v0.9.0 (pre-receive hook declined)
 ! [remote rejected] v0.9.1 -> v0.9.1 (pre-receive hook declined)
 ! [remote rejected] v0.9.2 -> v0.9.2 (pre-receive hook declined)
 ! [remote rejected] v0.9.3 -> v0.9.3 (pre-receive hook declined)
 ! [remote rejected] v1.0.0 -> v1.0.0 (pre-receive hook declined)
 ! [remote rejected] v1.1.0 -> v1.1.0 (pre-receive hook declined)
 ! [remote rejected] v1.2.0 -> v1.2.0 (pre-receive hook declined)
 ! [remote rejected] v1.3.0 -> v1.3.0 (pre-receive hook declined)
 ! [remote rejected] v1.3.1 -> v1.3.1 (pre-receive hook declined)
 ! [remote rejected] v1.3.2 -> v1.3.2 (pre-receive hook declined)
 ! [remote rejected] v1.3.3 -> v1.3.3 (pre-receive hook declined)
 ! [remote rejected] v1.3.4 -> v1.3.4 (pre-receive hook declined)
 ! [remote rejected] v1.3.5 -> v1.3.5 (pre-receive hook declined)
 ! [remote rejected] v1.4.0 -> v1.4.0 (pre-receive hook declined)
 ! [remote rejected] v1.5.0 -> v1.5.0 (pre-receive hook declined)
 ! [remote rejected] v1.6.0 -> v1.6.0 (pre-receive hook declined)
 ! [remote rejected] v1.6.1 -> v1.6.1 (pre-receive hook declined)
 ! [remote rejected] v1.6.2 -> v1.6.2 (pre-receive hook declined)
 ! [remote rejected] v1.6.3 -> v1.6.3 (pre-receive hook declined)
 ! [remote rejected] v1.7.0 -> v1.7.0 (pre-receive hook declined)
 ! [remote rejected] v1.7.1 -> v1.7.1 (pre-receive hook declined)
 ! [remote rejected] v1.7.2 -> v1.7.2 (pre-receive hook declined)
 ! [remote rejected] v1.8.0 -> v1.8.0 (pre-receive hook declined)
 ! [remote rejected] v1.8.1 -> v1.8.1 (pre-receive hook declined)
 ! [remote rejected] v1.8.2 -> v1.8.2 (pre-receive hook declined)
 ! [remote rejected] v1.8.3 -> v1.8.3 (pre-receive hook declined)
 ! [remote rejected] v1.9.0 -> v1.9.0 (pre-receive hook declined)
 ! [remote rejected] v1.9.1 -> v1.9.1 (pre-receive hook declined)
 ! [remote rejected] v1.9.2 -> v1.9.2 (pre-receive hook declined)
 ! [remote rejected] v1.9.3 -> v1.9.3 (pre-receive hook declined)
 ! [remote rejected] v1.9.4 -> v1.9.4 (pre-receive hook declined)
 ! [remote rejected] v1.9.5 -> v1.9.5 (pre-receive hook declined)
 ! [remote rejected] v2.0.0 -> v2.0.0 (pre-receive hook declined)
 ! [remote rejected] v2.0.1 -> v2.0.1 (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@internalDeisBuilder:2222/enlightning.git'

Looking at the second build, you can see that it tries to use the company registry for the base image, which is where it fails. The successful build does not do this:

Step 1 : FROM ubuntu:14.04
 ---> 54333f1de4ed
Step 2 : MAINTAINER Brandon Okert <brandon.okert@hootsuite.com>
 ---> Using cache
 ---> 9598ac5bd5dd
...

I do have both registries on my development machine:

> cat ~/.docker/config.json
{
	"auths": {
		"companyRegistryUrl": {
			"auth": "xxx",
			"email": "xxx"
		},
		"https://index.docker.io/v1/": {
			"auth": "xxx",
			"email": "xxx"
		}
	}
}

But I don't think this would affect deis.

Also, it's strange that it reports all those tags as well; as if it's thinking about building each one. There's only the one Dockerfile in the branch that I'm pushing.

Cheers!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions