We’re seeing some serious hoop after hoop requirements in order to maintain our
docker build workflow on CircleCI 2.0. Quite unhappy at this point. All we have is a simple build-test-deploy cycle but:
- The Docker executor doesn’t seem to work with build-test-deploy Workflows at all. The Docker layer context is swapped out so whatever you just built isn’t available in the next job without tarball shuffling.
- If we did get workflows to work, some of our “build 10 base images and deploy them” workflows in order to achieve parallelism would require back-breaking levels of copy-pasting throughout the YML file.
- Volume mounts, which we still need in some cases, are not at all supported on the Docker executor.
- The Machine executor has a ??? on its price tag right now even with CircleCI 2.0 in GA.
- The Machine executor doesn’t seem to support any level of Docker layer caching except DIY.
- If I use the Machine executor with Workflows, am I guaranteed to get the same machine for every job? There aren’t any docs for Machine+Workflows, but they seem to imply that I need to specify my
machine: image: circleci/classic:edgein every job like I would the Docker executor which makes me concerned about getting hot-swapped to a different machine.
I know Circle is working furiously to improve the experience for their users and I appreciate that greatly, but there seem to be some Docker-unfriendly ingrained architectural decisions having been made in the early development of this product that really give a bad first impression. I really hope you guys get it worked out and the documentation brought up to speed.