Public Repository

Last pushed: 7 months ago
Short Description
Server of GoCD - Continuous Delivery Server -
Full Description

Please note that these images are deprecated and unmaintained, but are here to ensure that users can get the images they have been using in the past.

For setting up any new GoCD servers, we recommend that you use instead.

The old README follows

This repository can be used to bring up a GoCD Server, in a container.

This is useful for demonstration and casual use only, and should NOT be used for running a production Go Server. For one, all your data will be wiped out when the container exits. You have been warned. See section "Volumes" below, if you really want to use it for production.


Start the container with this:

docker run -tiP gocd/gocd-server

You'll see docker download the image (might take a little while, the first time), and then the GoCD Server will start up. You'll see messages in blue, telling you what is happening. Once the server has come up, and the dashboard is accessible, you'll get a message about the command you can run to find out which port docker used for this container.

This container is meant to be used with gocd-agent containers. You can start a bunch of containers pointing to this GoCD server container quite easily.

Getting into the container

Sometimes, you need a shell inside the container (to create test repositories, etc). docker provides an easy way to do that:

docker exec -i -t CONTAINER-ID bash

To check the server logs, you can do this:

docker exec -i -t CONTAINER-ID tail -f /var/log/go-server/go-server.log

You can find the container ID using docker ps.


This image exposes volumes such as "/var/lib/go-server", "/var/log/go-server" and "/etc/go", which you can use, with a data-only container (for instance), to make sure that your data does not get removed when the container exits.

Additional information

  • If you start the container with the -P option, as mentioned above, and missed the messages about finding the correct ports for the server, the message is reproduced here:

      If you're using docker on a Linux box, you can do this:
      echo http://localhost:$(docker inspect --format='{{(index (index .NetworkSettings.Ports "8153/tcp") 0).HostPort}}' CONTAINER-ID)
      If you're using docker through boot2docker, on a Mac, do this:
      echo http://$(boot2docker ip):$(docker inspect --format='{{(index (index .NetworkSettings.Ports "8153/tcp") 0).HostPort}}' CONTAINER-ID)
  • Starting the server on a known port:

       docker run -i -t -p 8153:8153 -p 8154:8154 gocd/gocd-server

    Then, you can access the Go Server on either:

    1. With plain Docker: http://localhost:8153 (plain Docker)

    2. With boot2docker: http://BOOT2DOCKER-IP:8153 (where BOOT2DOCKER-IP can be found using boot2docker ip)

  • The server starts with a default auto-registration key of 123456789abcdef. If you need to use a different auto-registration key, all you need to do is to set the AGENT_KEY environment variable. Like this:

      docker run -i -t -p 8153:8153 -p 8154:8154 -e AGENT_KEY=your_key_here gocd/gocd-server
  • More about agent auto-registration here.

  • Sources of this docker container (the Dockerfile, etc) are here, on GitHub.

Docker Pull Command