A Go web service which provides a HTTP API and a web UI for building, pushing, and deleting docker images. Free hosted service at https://boatyard.io/
10K+
A Go web service which provides a HTTP API and a web UI for building, pushing, and deleting docker images.
This repository has been deprecated in favour of Tutum's new Automated Build functionality which uses the open source tutum/builder image for building.
With docker and fig installed, and with docker listening in tcp://localhost:4243, simply run:
fig up -d
Run docker ps and check the allocated port for boatyard. Then point your browser to http://localhost:49XXX/ to open the web UI.
You can specify any of the following environment variables in the fig.yml to configure it:
DOCKER_HOST (default: tcp://localhost:4243): the endpoint where a Docker server is listening toCACHE_1_PORT_6379_TCP_ADDR (default: none): the hostname to connect to a Redis cacheCACHE_1_PORT_6379_TCP_PORT (default: 6379): the port to connect to a Redis cacheCACHE_PASSWORD (default: none): an optional password to authenticate with the Redis cacheThe primary inputs to create an image are:
user/myimage)user)password)[email protected])Any of the following inputs can be passed to boatyard to create the image:
DockerfileDockerfile on the root folder and any required filesFrom Dockerfile:
POST /api/v1/build
{
"image_name": "user/image",
"username": "user",
"password": "password",
"email": "[email protected]",
"dockerfile": "FROM ubuntu:saucy\nCMD echo \"Hello world\""
}
From a tarball URL:
POST /api/v1/build
{
"image_name": "user/image",
"username": "user",
"password": "password",
"email": "[email protected]",
"tar_url": "https://github.com/tutumcloud/docker-hello-world/archive/v1.0.tar.gz"
}
From GitHub repository:
POST /api/v1/build
{
"image_name": "user/image",
"username": "user",
"password": "password",
"email": "[email protected]",
"github_username": "tutumcloud",
"github_reponame": "docker-hello-world",
"github_tag": "v1.0"
}
From a tarball sent with the request:
POST /api/v1/build
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="TarFile"; filename="dockertarexample.tar.gz"
Content-Type: application/x-gzip
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="Json"; filename="manifest.json"
Content-Type: application/json
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Where manifest.json has the following format.
{
"image_name": "user/image",
"username": "user",
"password": "password",
"email": "[email protected]"
}
### Response
{
"JobIdentifier": "ef0c7a10-31a5-4140-6087-df97c2bebcb2"
}
The JobIdentifier can be used to check the status and logs with the following GET requests.
### Request
Issue the following request:
GET /api/v1/:jobid/status
where :jobid is the job ID returned in the build request (i.e. ef0c7a10-31a5-4140-6087-df97c2bebcb2)
{
"Status": "Pushing"
}
The status will show errors, and on a successful call the job status has three stages: "Building", "Pushing", and "Finished".
### Request
Issue the following request:
GET /api/v1/:jobid/logs
where :jobid is the job ID returned in the build request (i.e. ef0c7a10-31a5-4140-6087-df97c2bebcb2)
{
"Logs": "Logs are returned as one string."
}
The logs catch the build logs and any errors returned from the docker host.
Content type
Image
Digest
sha256:840144624…
Size
515.6 MB
Last updated
about 11 years ago
docker pull tutum/boatyard