mirror of https://github.com/docker/docs.git
Merge pull request #658 from dotcloud/builder_client_doc
Builder client doc
This commit is contained in:
commit
e6e13d6ade
35
api_test.go
35
api_test.go
|
@ -14,7 +14,6 @@ import (
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -579,40 +578,6 @@ func TestPostCommit(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPostBuild(t *testing.T) {
|
|
||||||
runtime, err := newTestRuntime()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer nuke(runtime)
|
|
||||||
|
|
||||||
srv := &Server{runtime: runtime}
|
|
||||||
|
|
||||||
imgs, err := runtime.graph.All()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
beginCount := len(imgs)
|
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", "/build", strings.NewReader(Dockerfile))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
r := httptest.NewRecorder()
|
|
||||||
if err := postBuild(srv, r, req, nil); err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
imgs, err = runtime.graph.All()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if len(imgs) != beginCount+3 {
|
|
||||||
t.Fatalf("Expected %d images, %d found", beginCount+3, len(imgs))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPostImagesCreate(t *testing.T) {
|
func TestPostImagesCreate(t *testing.T) {
|
||||||
// FIXME: Use the staging in order to perform tests
|
// FIXME: Use the staging in order to perform tests
|
||||||
|
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
package docker
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/dotcloud/docker/utils"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
const Dockerfile = `
|
|
||||||
# VERSION 0.1
|
|
||||||
# DOCKER-VERSION 0.2
|
|
||||||
|
|
||||||
from ` + unitTestImageName + `
|
|
||||||
run sh -c 'echo root:testpass > /tmp/passwd'
|
|
||||||
run mkdir -p /var/run/sshd
|
|
||||||
insert https://raw.github.com/dotcloud/docker/master/CHANGELOG.md /tmp/CHANGELOG.md
|
|
||||||
`
|
|
||||||
|
|
||||||
func TestBuild(t *testing.T) {
|
|
||||||
runtime, err := newTestRuntime()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer nuke(runtime)
|
|
||||||
|
|
||||||
builder := NewBuilder(runtime)
|
|
||||||
|
|
||||||
img, err := builder.Build(strings.NewReader(Dockerfile), &utils.NopWriter{})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
container, err := builder.Create(
|
|
||||||
&Config{
|
|
||||||
Image: img.Id,
|
|
||||||
Cmd: []string{"cat", "/tmp/passwd"},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer runtime.Destroy(container)
|
|
||||||
|
|
||||||
output, err := container.Output()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if string(output) != "root:testpass\n" {
|
|
||||||
t.Fatalf("Unexpected output. Read '%s', expected '%s'", output, "root:testpass\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
container2, err := builder.Create(
|
|
||||||
&Config{
|
|
||||||
Image: img.Id,
|
|
||||||
Cmd: []string{"ls", "-d", "/var/run/sshd"},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer runtime.Destroy(container2)
|
|
||||||
|
|
||||||
output, err = container2.Output()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if string(output) != "/var/run/sshd\n" {
|
|
||||||
t.Fatal("/var/run/sshd has not been created")
|
|
||||||
}
|
|
||||||
|
|
||||||
container3, err := builder.Create(
|
|
||||||
&Config{
|
|
||||||
Image: img.Id,
|
|
||||||
Cmd: []string{"cat", "/tmp/CHANGELOG.md"},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer runtime.Destroy(container3)
|
|
||||||
|
|
||||||
output, err = container3.Output()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if len(output) == 0 {
|
|
||||||
t.Fatal("/tmp/CHANGELOG.md has not been copied")
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -107,8 +107,7 @@ The `ENV` instruction sets the environment variable `<key>` to the value
|
||||||
functionally equivalent to prefixing the command with `<key>=<value>`
|
functionally equivalent to prefixing the command with `<key>=<value>`
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The environment variables are local to the Dockerfile, they will not persist
|
The environment variables will persist when a container is run from the resulting image.
|
||||||
when a container is run from the resulting image.
|
|
||||||
|
|
||||||
2.7 INSERT
|
2.7 INSERT
|
||||||
----------
|
----------
|
||||||
|
@ -122,6 +121,8 @@ curl was installed within the image.
|
||||||
.. note::
|
.. note::
|
||||||
The path must include the file name.
|
The path must include the file name.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This instruction has temporarily disabled
|
||||||
|
|
||||||
3. Dockerfile Examples
|
3. Dockerfile Examples
|
||||||
======================
|
======================
|
||||||
|
@ -179,4 +180,4 @@ curl was installed within the image.
|
||||||
# Will output something like ===> 695d7793cbe4
|
# Will output something like ===> 695d7793cbe4
|
||||||
|
|
||||||
# You'll now have two images, 907ad6c2736f with /bar, and 695d7793cbe4 with
|
# You'll now have two images, 907ad6c2736f with /bar, and 695d7793cbe4 with
|
||||||
# /oink.
|
# /oink.
|
||||||
|
|
Loading…
Reference in New Issue