One of the fastest ways to get Docker and orchestrate containers with persistent data on any infrastructure is to deploy this BOSH release.
This is not presently a production ready Docker BOSH release. This is a work in progress. It is suitable for experimentation and may not become supported in the future.
To use this BOSH release, first upload it to your BOSH:
bosh target BOSH_HOST
git clone https://github.com/cloudfoundry-community/docker-boshrelease.git
cd docker-boshrelease
bosh upload release releases/docker/docker-23.yml
There are 3 deployment scenarios for this BOSH release:
- Deploy statically defined Docker containers: see CONTAINERS.md for deployment instructions.
- Deploy a Docker Service Broker for your Cloud Foundry deployment: see SERVICE_BROKER.md for deployment instructions.
- Deploy a Docker Swarm cluster: see SWARM.md for deployment instructions.
Using the previous created deployment manifest, now we can deploy it:
bosh deployment path/to/deployment.yml
bosh -n deploy
If your vms require a proxy in order to get internet access to fetch the Docker images, you can set the proxy URIs
using the env.http_proxy
, env.https_proxy
and env.no_proxy
properties at your deployment manifest.
One of the most frequent problems when deploying this BOSH release is that Docker is unable to fetch images from the
Docker Hub Registry. This usually happens when the first DNS nameserver specified
at the /etc/resolv.conf
file in the VM is unable to resolve the index.docker.io
hostname. In order to fix this
issue the first DNS nameserver must be able to resolve external hostnames. Usually the first DNS nameserver is the
microBOSH PowerDNS IP address, so in order to fix this you must re-deploy microBOSH
setting a PowerDNS recursor. This can be done updating the micro_bosh.yml
file with:
apply_spec:
properties:
dns:
recursor: 8.8.8.8
Another issue may be that applications cannot connect to your Docker-based services and raise connection errors. The cause of this may be the new Cloud Foundry Security Groups. It is possible that the default security groups prevent access to the same network range that includes your Docker VM.
Fix the security groups when deploying Cloud Foundry itself via BOSH. Alternately, a quick and dirty solution if
testing this BOSH release for the first time is to create an everything
security group and bind it only to the space
you are using now.
Create a temporary file everything.json
:
[
{
"destination": "0.0.0.0-255.255.255.255",
"protocol": "all"
}
]
Register the new security group, as an admin
user:
cf create-security-group everything everything.json
Bind the security group to your current org/space:
cf bind-security-group everything ORG SPACE
In the spirit of free software, everyone is encouraged to help improve this project.
Here are some ways you can contribute:
- by using alpha, beta, and prerelease versions
- by reporting bugs
- by suggesting new features
- by writing or editing documentation
- by writing specifications
- by writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
- by refactoring code
- by closing issues
- by reviewing patches
We use the GitHub issue tracker to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted. You can indicate support for an existing issue by voting it up. When submitting a bug report, please include a Gist that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system. Ideally, a bug report should include a pull request with failing specs.
- Fork the project.
- Create a topic branch.
- Implement your feature or bug fix.
- Commit and push your changes.
- Submit a pull request.
If you need to create a new development release, you will need to run the ./update
command first to download the
submodule bits.
Also, you will need Ruby 2+ and bundler installed at your workstation in order to bundle all required gems and compile the assets.
If you need to create a new final release, you will need to get read/write API credentials to the @cloudfoundry-community s3 account.
Please email Dr Nic Williams and he will create unique API credentials for you.
Create a config/private.yml
file with the following contents:
---
blobstore:
s3:
access_key_id: ACCESS
secret_access_key: PRIVATE
You can now create final releases for everyone to enjoy!
bosh create release
# test this dev release
git commit -m "updated docker"
bosh create release --final
git commit -m "creating vXYZ release"
git tag vXYZ
git push origin master --tags
Copyright (c) 2014-2015 Pivotal Software, Inc. See LICENSE for details.