CircleCI for Linux: Run any job in a fresh Ubuntu virtual machine
CircleCI provides a set of pre-configured VMs with all the possibilities and variations of Docker and a host of common tooling pre-installed. CircleCI supports any language that builds on Linux, including C++, Javascript, .NET, PHP, Python, Android, and Ruby.
Pre-provisioned, fresh every time
Save on VM spin-up time and get a clean environment for every job. Optional ability to cache and reuse the contents of your VM across jobs.
Full Docker CLI support
Conveniently run your `Docker` commands in a VM to build and push your images as part of a job.
CI for Android app development
Building an Android app? We’ve got you covered. Avoid 1-star reviews by ensuring that your apps are bug-free the first time. Learn more.
Customize your environment with auto-provisioned Linux VMs
Never run into the limitations of Docker-in-Docker because you can always run your jobs in a full Linux VM. Our Linux VMs are provisioned automatically just for your job and can be easily integrated into your other Docker-based jobs using a single line of configuration. See the following sample configurations below.
CircleCI lets you run your jobs in a full VM when you need access to system resources not available inside Docker. If you run into limitations with Docker, you have the option of running a full VM within Docker.
version: 2
jobs:
build:
machine: true
steps:
- checkout
- run: docker login -u $DOCKER_USER -p $DOCKER_PASS
- run: docker build -t orgname/image:tag .
- run: docker push orgname/image:tag
Run your jobs in the Docker image of your choice, or use a full Linux VM instead. You can also combine both by connecting to a clean Linux VM from within your Docker jobs.
version: 2
jobs:
build:
machine: true
steps:
- checkout
- run: docker-compose build
- run: docker-compose up -d