6

This post is migrated from a reddit post. Parts in bold are to adopt it to SE's format.

I'm talking with companies to help streamline/combine their build process. They must do it together and their current processes are scary. We've convinced them to go with AWS/jenkins/bitbucket/artifactory.

Now one company wants to use fedora's mock for their build environment deps and build artifact management. Another wants to use docker for their build environment but does not have a build artifact solution yet.

I suggested a combination of docker (for build env deps) and mock (for product related artifacts and deps) to both. They scoffed at it. BTW one of the products is a custom rhel .iso.

  • What are the pros/cons for mock vs docker in the way the two companies are debating using them?

  • What about pros/cons for my proposal.. or if it is even a smart thing to do?

  • Any other suggested tools/build flow that may work better?

Ultimately I am interested in what is the best practice/most adopted method for doing this (build env deps mgmt/product artifact dep mgmt) in the industry that will have continued support and advancements?

scott
  • 466
  • 4
  • 11

1 Answers1

2

Docker is going to be far more well-known than Mock. I consistently see Docker used during build in companies that I work for. I think I have seen Mock before, but only because I am a Fedora user.

However, Docker is not a build tool in of itself, so you can still use Mock inside a container. This is a great way to avoid the "snowflake" build server. By using Docker containers, your builds are consistent no matter what build tool you are using. You can standardise on Docker as a platform for builds, and leave developers to choose the best build tool (whether that's Mock or NPM).

The only other suggestion I'd have is to run the builds on a CI server, and Docker makes this really easy.

Here's one example of a company using Docker for builds (as well as tests and deploys).

user2640621
  • 1,405
  • 9
  • 20