Giter VIP home page Giter VIP logo

dockerbuilder's Introduction

Deis Dockerbuilder v2

Build Status codebeat badge Docker Repository on Quay

Deis (pronounced DAY-iss) Workflow is an open source Platform as a Service (PaaS) that adds a developer-friendly layer to any Kubernetes cluster, making it easy to deploy and manage applications on your own servers.

For more information about the Deis Workflow, please visit the main project page at https://github.com/deisthree/workflow.

We welcome your input! If you have feedback, please submit an issue. If you'd like to participate in development, please read the "Development" section below and submit a pull request.

About

The Dockerbuilder downloads a git archive (gzipped tarball) from a specified [S3 API compatible server][s3-api] and runs docker build on it. When the build is done, it runs docker push to push the resulting image to a specified Docker repository.

This component is usually launched by the Deis Builder and used inside the Deis PaaS, but it is flexible enough to be used as a pod inside any Kubernetes cluster.

Development

The Deis project welcomes contributions from all developers. The high level process for development matches many other open source projects. See below for an outline.

  • Fork this repository
  • Make your changes
  • Submit a pull request (PR) to this repository with your changes, and unit tests whenever possible.
    • If your PR fixes any issues, make sure you write Fixes #1234 in your PR description (where #1234 is the number of the issue you're closing)
  • The Deis core contributors will review your code. After each of them sign off on your code, they'll label your PR with LGTM1 and LGTM2 (respectively). Once that happens, the contributors will merge it

dockerbuilder's People

Contributors

apsops avatar arschles avatar cryptophobia avatar eudalov avatar helgi avatar joshua-anderson avatar kmala avatar krancour avatar mboersma avatar ultimateboy avatar vdice avatar yebyen avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

dockerbuilder's Issues

Do not inject ARG on newer Docker versions.

From @miracle2k on May 9, 2017 7:9

https://github.com/deis/dockerbuilder/pull/118/files/13b2463d5311da00ac5125534ee7add19a89fa3a#r108909997

I think it might be a good idea to not inject the ARGs in newer Docker versions. For me, each ARG statement takes about 2 seconds to run (Running on Azure). With a bunch of config vars defined, this extends the build time by minutes for me.

As an aside I do wonder why the ARG takes so long when running on my Deis install. Building the Dockerfile directly is super fast. Is this a disk-bound operation?

Copied from original issue: deis/dockerbuilder#123

implement everything in Go

From @smothiki on March 8, 2016 23:42

because of beta crunch time we haven;t explored enough options to use a go cli based client to build docker images and PUSH to remote registry.
Also moving a head in the future we have to support multiple object storage backends.
Also add support to talk to remote docker deamon along with mounting docker socker

Copied from original issue: deis/dockerbuilder#31

Hephy builder fails when app uses AWS reserved environment variables

Hephy Builder fails to store the Docker image it has just built with the message below:

Writing objects: 100% (4/4), 356 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
Starting build... but first, coffee\!
2020/09/29 15:22:49 InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.
remote: status code: 403, request id: 579ED5F7E401E3FC, host id: R+lwtdSuUO8clv3fDGrKW0V9IR8ZjnpeD17zcZ/1x5nF8ny9gDK4JIxTT3NPmB2vrfFy9b3tCwo=
Traceback (most recent call last):
  File "/deploy.py", line 89, in <module>
    download_file(tar_path)
  File "/deploy.py", line 83, in download_file
    subprocess.check_call(command)
  File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '\['objstorage', '--storage-type=s3', 'download', 'home/ilias-custom-metrics-app:git-0f96a9da/tar', 'apptar']' returned non-zero exit status 1
remote: 2020/09/29 15:22:55 Error running git receive hook \[Build pod exited with code 1, stopping build.]

Steps to reproduce:

  • Pick up any codebase with a Dockerfile.
  • Create an application on EYK for this codebase
  • For that application, set env vars AWS_ACCESS_KEY_ID, AWS_BUCKET_NAME, AWS_SECRET_ACCESS_KEY to any valid value that is not the credentials for the account where the cluster is running.
  • Run git push deis

Support for multi-stage builds in dockerbuilder

Provide guides and instructions on how to update a cluster's Docker version so that the Dockerbuilder component can use multi-stage builds:

https://docs.docker.com/develop/develop-images/multistage-build/


In https://github.com/deis/builder/blob/master/pkg/gitreceive/k8s_util.go
"this is the code that sets up the environment to run a deis/dockerbuilder pod. Then it hands off control essentially to a dockerbuilder image, and it calls Docker through a python client from https://github.com/deis/dockerbuilder/blob/master/rootfs/deploy.py

Maybe in that code you could at least detect if the Docker version was >= 17.05 and give a warning or disallow multi-stage builds. Or maybe Docker would already handle that for you."

pre/post compile hooks

From @pixeleet on August 15, 2016 10:26

As a Developer using the Deis platfrom I'd like to have pre/post compile hooks available for dockerfile based builds too, so I can execute checks that my services required for tests are alive and execute tests after an image has been made. Thus making my flow more CI/CD enabled.

Copied from original issue: deis/dockerbuilder#89

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.