1.1.1 Quick Start

Docker Compose Concourse

Concourse is distributed as a single concourse binary, making it easy to run just about anywhere, especially with Docker.

If you'd like to get Concourse running somewhere quickly so you can start to kick the tires, the easiest way is to use our docker-compose.yml:

$ curl -O https://concourse-ci.org/docker-compose.yml
$ docker-compose up -d
Creating docs_concourse-db_1 ...
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1 ...
Creating docs_concourse_1 ... done

Concourse will be running at localhost:8080 on your machine. You can log in with the username/password as test/test.

Install Fly

Next, install the fly CLI by downloading it from the web UI. Following the install steps for your OS:

Linux
curl 'http://localhost:8080/api/v1/cli?arch=amd64&platform=linux' -o fly
chmod +x ./fly
mv ./fly /usr/local/bin/
MacOS
curl 'http://localhost:8080/api/v1/cli?arch=amd64&platform=darwin' -o fly
chmod +x ./fly
mv ./fly /usr/local/bin/
Windows (Powershell One-liner)
$concoursePath = 'C:\concourse\'; mkdir $concoursePath; `
[Environment]::SetEnvironmentVariable('PATH', "$ENV:PATH;${concoursePath}", 'USER'); `
$concourseURL = 'http://localhost:8080/api/v1/cli?arch=amd64&platform=windows'; `
Invoke-WebRequest $concourseURL -OutFile "${concoursePath}\fly.exe"

Use fly login to log into your local Concourse as the test user:

fly -t tutorial login -c http://localhost:8080 -u test -p test

You've successfully logged in if you see the following output:

logging in to team 'main'

target saved

You'll notice that every fly command in this tutorial has to have the target (-t tutorial) specified. This is annoying when you only have one Concourse to target, but it helps ensure you don't trigger a job on the wrong Concourse instance. It will save you from hurting yourself!

Once you've confirmed everything is up and running by logging in through fly and the web UI, you can move onto the next section. If you refresh this page you should see the web UI in the frame below.

If you have any feedback for this tutorial please share it in this GitHub discussion