##Usage
Start the container with this:

```docker run -ti -e GO_SERVER=your.go.server.ip_or_host gocd/gocd-agent```

If you need to start a few GoCD agents together, you can of course use the shell to do that. Start a few agents in the background, like this:

```for each in 1 2 3; do docker run -d --link angry_feynman:go-server gocd/gocd-agent; done```

##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 /bin/bash```

To check the agent logs, you can do this:

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

##Agent Configuration
The go-agent expects it's configuration to be found at ```/var/lib/go-agent/config/```. Sharing the 
configuration between containers is done by mounting a volume at this location that contains any configuration files 
necessary.


**Example docker run command:**
```docker run -ti -v /tmp/go-agent/conf:/var/lib/go-agent/config -e GO_SERVER=gocd.sandbox.edx.org 718d75c467c0 bash```

[How to setup auto registration for remote agents](https://docs.go.cd/current/advanced_usage/agent_auto_register.html)

##Building and Uploading the container to ECS

* Copy the go-agent GitHub private key to this path:
    - ```docker/build/go-agent/files/go_github_key.pem```
    - A dummy key is in the repo file.
    - The actual private key is kept in LastPass - see DevOps for access.
    - WARNING: Do *NOT* commit/push the real private key to the public configuration repo!
* Create image
    - This must be run from the root of the configuration repository
    - ```docker build -f docker/build/go-agent/Dockerfile .```
    - or
    - ```make docker.test.go-agent```
* Log docker in to AWS
    - Assume the role of the account you wish to log in to
        - ```source assume_role.sh <account name>```
    - ```sh -c `aws ecr get-login --region us-east-1` ```
        - You might need to remove the `-e` option returned by that command in order to successfully login.
* Tag image 
    - ```docker tag <image_id> ############.dkr.ecr.us-east-1.amazonaws.com/prod-tools-goagent:latest```
    - ```docker tag <image_id> ############.dkr.ecr.us-east-1.amazonaws.com/prod-tools-goagent:<version_number>```
* upload: 
    - ```docker push ############.dkr.ecr.us-east-1.amazonaws.com/edx/release-pipeline/prod-tools-goagent:latest```
    - ```docker push ############.dkr.ecr.us-east-1.amazonaws.com/edx/release-pipeline/prod-tools-goagent:<version_number>```