The recording of our December 20 webinar, What’s New in TeamCity 2017.2, is now available on the JetBrains YouTube channel.
In this webinar, Wes Higbee goes over the new features of TeamCity 2017.2, the latest release of TeamCity. He demonstrates how the Docker-specific build runners and the new Docker support build features work; the built-in .NET CLI support for building the .NET Core projects; the new composite builds for aggregating build results; as well as the default and multiple templates.
Q&A from the session
Q: Is every single Build Step (type) supported inside of a Docker container?
A: Currently supported types are: Command line, Maven, Gradle and Ant.
Q: What if I need to run a number of different steps in the same container? Is it possible? Just to avoid so long deployment of a container each time.
A: Currently, it’s not possible.
Q: You said the checkout directory is mounted inside the docker image on the agent. If I then change the image will it then downlaod the entire checkout directory again into the new image, or does it use a mountpoint/Junction point/similar? I ask because our checkout directories are around 1TB.
A: No, the checkout directory will remain on the build agent. Build step will just use it.
Q: Is there a build step to log into Docker Hub or is it still a custom command line step?
A: Docker support build feature helps with it.
Q: Is there support for cleaning up Docker on the agent? One step we always have to do is cleaning up all images/volumes.
A: If there’s not enough space for build on disk, TeamCity agent will run
docker system prune. We are working on making it smarter.
Q: Running a step in a Docker image, will that also work when the step is running Docker?
A: There’s a bit of extra configuration required to run Docker within dockerized TeamCity agent image. See the notes on the TeamCity Docker image page.
Q: Is it possible to run Docker compose without stopping, so it can run steps against the running containers, and stop it later?
A: It stops at the end of the build, not at the end of the step.
Q: Are there any plans for making TeamCity a registry as well?
A: No, there are no immediate plans.
Q: Can agents run multiple Docker build configurations concurrently?
A: No, this is basically the same configuration. The same limitations apply, one agent can run one build at a time. But your build can start several Docker containers or run tests in parallel, it’s up to the build.
Q: Are there any plans to support Docker as a “cloud” provider?
A: There are a couple of “Docker cloud” plugins: Docker Cloud and Docker Support. Additionally, there are Amazon ECS and Kubernetes plugins.
Q: Would it be fair to call a Docker registry as a repository for artifacts?
A: Yes, we are considering it an artifact storage, that’s why we added a feature to push/remove image. However, registry is not a complete replacement for a regular artifacts storage.
Q: What other purposes does registry serve? Where does deployment and promotion across environments fit into this?
A: Docker Registry is a storage for Docker images. It’s not suitable for anything else.
Q: Can I run my existing non-docker builds and then use docker to standardise my build agents? I currently have a problem of keeping 3 build agents in sync.
A: You can run agent in Docker, you can run a separate build step in Docker and you can do both together.
Q: Can I create a docker image that has latest .NET + WIX + some Oracle dependencies and then specify this image within my build configuration?
A: That’s exactly what you should do that to use the feature.
Q: How does a build pick the build step order for all the steps coming from the templates?
A: If you need a specific order, it can be specified in the build configuration itself.