Merge pull request #587 from AkihiroSuda/update-containerd-113
update containerd (binary: v1.1.3, library: Aug 23, 2018)docker-18.09
commit
277037a77f
|
@ -232,7 +232,7 @@ export JAEGER_TRACE=0.0.0.0:6831
|
|||
|
||||
### Supported runc version
|
||||
|
||||
During development, BuildKit is tested with the version of runc that is being used by the containerd repository. Please refer to [runc.md](https://github.com/containerd/containerd/blob/v1.1.0/RUNC.md) for more information.
|
||||
During development, BuildKit is tested with the version of runc that is being used by the containerd repository. Please refer to [runc.md](https://github.com/containerd/containerd/blob/v1.1.3/RUNC.md) for more information.
|
||||
|
||||
### Running BuildKit without root privileges
|
||||
|
||||
|
|
|
@ -65,6 +65,10 @@ func TestClientIntegration(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func newContainerd(cdAddress string) (*containerd.Client, error) {
|
||||
return containerd.New(cdAddress, containerd.WithTimeout(60*time.Second))
|
||||
}
|
||||
|
||||
func testExtraHosts(t *testing.T, sb integration.Sandbox) {
|
||||
t.Parallel()
|
||||
|
||||
|
@ -670,7 +674,7 @@ func testBuildPushAndValidate(t *testing.T, sb integration.Sandbox) {
|
|||
|
||||
// TODO: make public pull helper function so this can be checked for standalone as well
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -1312,7 +1316,7 @@ loop0:
|
|||
|
||||
// TODO: make public pull helper function so this can be checked for standalone as well
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd"
|
||||
"github.com/containerd/containerd/namespaces"
|
||||
|
@ -90,7 +91,7 @@ func testBuildContainerdExporter(t *testing.T, sb integration.Sandbox) {
|
|||
err = cmd.Run()
|
||||
require.NoError(t, err)
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := containerd.New(cdAddress, containerd.WithTimeout(60*time.Second))
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ package main
|
|||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
ctd "github.com/containerd/containerd"
|
||||
"github.com/moby/buildkit/worker"
|
||||
|
@ -66,7 +67,7 @@ func containerdWorkerInitializer(c *cli.Context, common workerInitializerOpt) ([
|
|||
logrus.Warn("rootless mode is not supported for containerd workers. disabling containerd worker.")
|
||||
return nil, nil
|
||||
}
|
||||
opt, err := containerd.NewWorkerOpt(common.root, socket, ctd.DefaultSnapshotter, labels)
|
||||
opt, err := containerd.NewWorkerOpt(common.root, socket, ctd.DefaultSnapshotter, labels, ctd.WithTimeout(60*time.Second))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ type buildOpt struct {
|
|||
func main() {
|
||||
var opt buildOpt
|
||||
flag.BoolVar(&opt.withContainerd, "with-containerd", true, "enable containerd worker")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.0", "containerd version")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.3", "containerd version")
|
||||
flag.StringVar(&opt.runc, "runc", "dd56ece8236d6d9e5bed4ea0c31fe53c7b873ff4", "runc version")
|
||||
flag.Parse()
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ type buildOpt struct {
|
|||
func main() {
|
||||
var opt buildOpt
|
||||
flag.BoolVar(&opt.withContainerd, "with-containerd", true, "enable containerd worker")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.0", "containerd version")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.3", "containerd version")
|
||||
flag.StringVar(&opt.runc, "runc", "dd56ece8236d6d9e5bed4ea0c31fe53c7b873ff4", "runc version")
|
||||
flag.Parse()
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ type buildOpt struct {
|
|||
func main() {
|
||||
var opt buildOpt
|
||||
flag.BoolVar(&opt.withContainerd, "with-containerd", true, "enable containerd worker")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.0", "containerd version")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.3", "containerd version")
|
||||
flag.StringVar(&opt.runc, "runc", "dd56ece8236d6d9e5bed4ea0c31fe53c7b873ff4", "runc version")
|
||||
flag.Parse()
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ type buildOpt struct {
|
|||
func main() {
|
||||
var opt buildOpt
|
||||
flag.BoolVar(&opt.withContainerd, "with-containerd", true, "enable containerd worker")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.0", "containerd version")
|
||||
flag.StringVar(&opt.containerd, "containerd", "v1.1.3", "containerd version")
|
||||
flag.StringVar(&opt.runc, "runc", "dd56ece8236d6d9e5bed4ea0c31fe53c7b873ff4", "runc version")
|
||||
flag.StringVar(&opt.buildkit, "buildkit", "master", "buildkit version")
|
||||
flag.Parse()
|
||||
|
|
|
@ -43,7 +43,7 @@ func run() error {
|
|||
_ = buildkitd
|
||||
|
||||
containerd, err := gb.BuildExe(gobuild.BuildOpt{
|
||||
Source: llb.Git("github.com/containerd/containerd", "v1.1.0"),
|
||||
Source: llb.Git("github.com/containerd/containerd", "v1.1.3"),
|
||||
MountPath: "/go/src/github.com/containerd/containerd",
|
||||
Pkg: "github.com/containerd/containerd/cmd/containerd",
|
||||
BuildTags: []string{"no_btrfs"},
|
||||
|
|
|
@ -77,6 +77,10 @@ func TestIntegration(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func newContainerd(cdAddress string) (*containerd.Client, error) {
|
||||
return containerd.New(cdAddress, containerd.WithTimeout(60*time.Second))
|
||||
}
|
||||
|
||||
func testExportMultiPlatform(t *testing.T, sb integration.Sandbox) {
|
||||
t.Parallel()
|
||||
|
||||
|
@ -470,7 +474,7 @@ ENTRYPOINT my entrypoint
|
|||
}, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
ctr, err := containerd.New(cdAddress)
|
||||
ctr, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer ctr.Close()
|
||||
|
||||
|
@ -561,7 +565,7 @@ COPY foo .
|
|||
}, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
ctr, err := containerd.New(cdAddress)
|
||||
ctr, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer ctr.Close()
|
||||
|
||||
|
@ -1060,7 +1064,7 @@ ENV foo=bar
|
|||
err = cmd.Run()
|
||||
require.NoError(t, err)
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -1143,7 +1147,7 @@ EXPOSE 5000
|
|||
cdAddress = cd.ContainerdAddress()
|
||||
}
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -1324,7 +1328,7 @@ RUN ["ls"]
|
|||
cdAddress = cd.ContainerdAddress()
|
||||
}
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -1482,7 +1486,7 @@ USER nobody
|
|||
cdAddress = cd.ContainerdAddress()
|
||||
}
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -2055,7 +2059,7 @@ LABEL foo=bar
|
|||
cdAddress = cd.ContainerdAddress()
|
||||
}
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -2230,7 +2234,7 @@ RUN echo bar > bar
|
|||
cdAddress = cd.ContainerdAddress()
|
||||
}
|
||||
|
||||
client, err := containerd.New(cdAddress)
|
||||
client, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer client.Close()
|
||||
|
||||
|
@ -2300,7 +2304,7 @@ RUN echo bar > bar
|
|||
},
|
||||
}
|
||||
|
||||
ctd, err := containerd.New(cdAddress)
|
||||
ctd, err := newContainerd(cdAddress)
|
||||
require.NoError(t, err)
|
||||
defer ctd.Close()
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
ARG RUNC_VERSION=dd56ece8236d6d9e5bed4ea0c31fe53c7b873ff4
|
||||
ARG CONTAINERD_VERSION=v1.1.0
|
||||
ARG CONTAINERD_VERSION=v1.1.3
|
||||
# containerd v1.0 for integration tests
|
||||
ARG CONTAINERD10_VERSION=v1.0.3
|
||||
# available targets: buildkitd, buildkitd.oci_only, buildkitd.containerd_only
|
||||
|
|
|
@ -82,6 +82,9 @@ func (c *containerd) New() (sb Sandbox, cl func() error, err error) {
|
|||
address := filepath.Join(tmpdir, "containerd.sock")
|
||||
config := fmt.Sprintf(`root = %q
|
||||
state = %q
|
||||
# CRI plugins listens on 10010/tcp for stream server.
|
||||
# We disable CRI plugin so that multiple instance can run simultaneously.
|
||||
disabled_plugins = ["cri"]
|
||||
|
||||
[grpc]
|
||||
address = %q
|
||||
|
@ -102,14 +105,15 @@ state = %q
|
|||
|
||||
logs := map[string]*bytes.Buffer{}
|
||||
|
||||
if stop, err := startCmd(cmd, logs); err != nil {
|
||||
ctdStop, err := startCmd(cmd, logs)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
} else {
|
||||
deferF.append(stop)
|
||||
}
|
||||
if err := waitUnix(address, 5*time.Second); err != nil {
|
||||
return nil, nil, err
|
||||
ctdStop()
|
||||
return nil, nil, errors.Wrapf(err, "containerd did not start up: %s", formatLogs(logs))
|
||||
}
|
||||
deferF.append(ctdStop)
|
||||
|
||||
buildkitdSock, stop, err := runBuildkitd([]string{"buildkitd",
|
||||
"--oci-worker=false",
|
||||
|
@ -123,6 +127,16 @@ state = %q
|
|||
return &cdsandbox{address: address, sandbox: sandbox{address: buildkitdSock, logs: logs, cleanup: deferF, rootless: false}}, cl, nil
|
||||
}
|
||||
|
||||
func formatLogs(m map[string]*bytes.Buffer) string {
|
||||
var ss []string
|
||||
for k, b := range m {
|
||||
if b != nil {
|
||||
ss = append(ss, fmt.Sprintf("%q:%q", k, b.String()))
|
||||
}
|
||||
}
|
||||
return strings.Join(ss, ",")
|
||||
}
|
||||
|
||||
type cdsandbox struct {
|
||||
sandbox
|
||||
address string
|
||||
|
|
|
@ -6,7 +6,7 @@ github.com/davecgh/go-spew v1.1.0
|
|||
github.com/pmezard/go-difflib v1.0.0
|
||||
golang.org/x/sys 1b2967e3c290b7c545b3db0deeda16e9be4f98a2
|
||||
|
||||
github.com/containerd/containerd v1.2.0-beta.0
|
||||
github.com/containerd/containerd 830363acac529947d794b50c3eec3bc47c59a183
|
||||
github.com/containerd/typeurl a93fcdb778cd272c6e9b3028b2f42d813e785d40
|
||||
golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c
|
||||
github.com/sirupsen/logrus v1.0.0
|
||||
|
|
|
@ -259,7 +259,7 @@ func fileInfoFromHeader(hdr *tar.Header) (name string, size int64, fileInfo *win
|
|||
if err != nil {
|
||||
return "", 0, nil, err
|
||||
}
|
||||
fileInfo.FileAttributes = uintptr(attr)
|
||||
fileInfo.FileAttributes = uint32(attr)
|
||||
} else {
|
||||
if hdr.Typeflag == tar.TypeDir {
|
||||
fileInfo.FileAttributes |= syscall.FILE_ATTRIBUTE_DIRECTORY
|
||||
|
|
|
@ -74,7 +74,7 @@ func copyIO(fifos *FIFOSet, ioset *Streams) (*cio, error) {
|
|||
if fifos.Stdout != "" {
|
||||
l, err := winio.ListenPipe(fifos.Stdout, nil)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to create stdin pipe %s", fifos.Stdout)
|
||||
return nil, errors.Wrapf(err, "failed to create stdout pipe %s", fifos.Stdout)
|
||||
}
|
||||
defer func(l net.Listener) {
|
||||
if err != nil {
|
||||
|
@ -99,7 +99,7 @@ func copyIO(fifos *FIFOSet, ioset *Streams) (*cio, error) {
|
|||
}()
|
||||
}
|
||||
|
||||
if !fifos.Terminal && fifos.Stderr != "" {
|
||||
if fifos.Stderr != "" {
|
||||
l, err := winio.ListenPipe(fifos.Stderr, nil)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to create stderr pipe %s", fifos.Stderr)
|
||||
|
|
|
@ -82,6 +82,9 @@ func New(address string, opts ...ClientOpt) (*Client, error) {
|
|||
return nil, err
|
||||
}
|
||||
}
|
||||
if copts.timeout == 0 {
|
||||
copts.timeout = 10 * time.Second
|
||||
}
|
||||
rt := fmt.Sprintf("%s.%s", plugin.RuntimePlugin, runtime.GOOS)
|
||||
if copts.defaultRuntime != "" {
|
||||
rt = copts.defaultRuntime
|
||||
|
@ -115,7 +118,7 @@ func New(address string, opts ...ClientOpt) (*Client, error) {
|
|||
)
|
||||
}
|
||||
connector := func() (*grpc.ClientConn, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), copts.timeout)
|
||||
defer cancel()
|
||||
conn, err := grpc.DialContext(ctx, dialer.DialAddress(address), gopts...)
|
||||
if err != nil {
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
package containerd
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd/images"
|
||||
"github.com/containerd/containerd/platforms"
|
||||
"github.com/containerd/containerd/remotes"
|
||||
|
@ -28,6 +30,7 @@ type clientOpts struct {
|
|||
defaultRuntime string
|
||||
services *services
|
||||
dialOptions []grpc.DialOption
|
||||
timeout time.Duration
|
||||
}
|
||||
|
||||
// ClientOpt allows callers to set options on the containerd client
|
||||
|
@ -71,6 +74,14 @@ func WithServices(opts ...ServicesOpt) ClientOpt {
|
|||
}
|
||||
}
|
||||
|
||||
// WithTimeout sets the connection timeout for the client
|
||||
func WithTimeout(d time.Duration) ClientOpt {
|
||||
return func(c *clientOpts) error {
|
||||
c.timeout = d
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// RemoteOpt allows the caller to set distribution options for a remote
|
||||
type RemoteOpt func(*Client, *RemoteContext) error
|
||||
|
||||
|
|
|
@ -143,6 +143,7 @@ func WithImageConfigArgs(image Image, args []string) SpecOpts {
|
|||
cmd = args
|
||||
}
|
||||
s.Process.Args = append(config.Entrypoint, cmd...)
|
||||
|
||||
cwd := config.WorkingDir
|
||||
if cwd == "" {
|
||||
cwd = "/"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
github.com/containerd/go-runc edcf3de1f4971445c42d61f20d506b30612aa031
|
||||
github.com/containerd/console 4d8a41f4ce5b9bae77c41786ea2458330f43f081
|
||||
github.com/containerd/go-runc 808e8444ac4633a8e5eb7314fc6b5d27051727dd
|
||||
github.com/containerd/console c12b1e7919c14469339a5d38f2f8ed9b64a9de23
|
||||
github.com/containerd/cgroups 5e610833b72089b37d0e615de9a92dfc043757c2
|
||||
github.com/containerd/typeurl a93fcdb778cd272c6e9b3028b2f42d813e785d40
|
||||
github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
|
||||
|
@ -20,7 +20,7 @@ github.com/gogo/protobuf v1.0.0
|
|||
github.com/gogo/googleapis 08a7655d27152912db7aaf4f983275eaf8d128ef
|
||||
github.com/golang/protobuf v1.1.0
|
||||
github.com/opencontainers/runtime-spec d810dbc60d8c5aeeb3d054bd1132fab2121968ce # v1.0.1-43-gd810dbc
|
||||
github.com/opencontainers/runc 69663f0bd4b60df09991c08812a60108003fa340
|
||||
github.com/opencontainers/runc 20aff4f0488c6d4b8df4d85b4f63f1f704c11abd
|
||||
github.com/sirupsen/logrus v1.0.0
|
||||
github.com/urfave/cli 7bc6a0acffa589f415f88aca16cc1de5ffd66f9c
|
||||
golang.org/x/net b3756b4b77d7b13260a0a2ec658753cf48922eac
|
||||
|
@ -32,8 +32,8 @@ github.com/opencontainers/image-spec v1.0.1
|
|||
golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c
|
||||
github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895
|
||||
github.com/grpc-ecosystem/go-grpc-prometheus 6b7015e65d366bf3f19b2b2a000a831940f0f7e0
|
||||
github.com/Microsoft/go-winio v0.4.7
|
||||
github.com/Microsoft/hcsshim v0.6.11
|
||||
github.com/Microsoft/go-winio v0.4.10
|
||||
github.com/Microsoft/hcsshim 44c060121b68e8bdc40b411beba551f3b4ee9e55
|
||||
github.com/boltdb/bolt e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd
|
||||
google.golang.org/genproto d80a6e20e776b0b17a324d0ba1ab50a39c8e8944
|
||||
golang.org/x/text 19e51611da83d6be54ddafce4a4af510cb3e9ea4
|
||||
|
|
Loading…
Reference in New Issue