running tests in a container
This provides a dockerfile for building a container to run the containerd tests Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
This commit is contained in:
parent
0c07626faf
commit
051ac5dd63
31
contrib/Dockerfile.test
Normal file
31
contrib/Dockerfile.test
Normal file
@ -0,0 +1,31 @@
|
||||
# This dockerfile is used to test containerd within a container
|
||||
#
|
||||
# usage:
|
||||
# 1.) docker build -t containerd-test -f Dockerfile.test ../
|
||||
# 2.) docker run -it --privileged -v /tmp:/tmp --tmpfs /var/lib/containerd-test containerd-test bash
|
||||
# 3.) $ make binaries install test
|
||||
#
|
||||
|
||||
# Install proto3
|
||||
FROM golang:1.9.3 AS proto3
|
||||
RUN apt-get update && apt-get install -y autoconf automake g++ libtool unzip
|
||||
COPY script/setup/install-protobuf install-protobuf
|
||||
RUN ./install-protobuf
|
||||
|
||||
# Install runc
|
||||
FROM golang:1.9.3 AS runc
|
||||
RUN apt-get update && apt-get install -y curl libapparmor-dev libseccomp-dev
|
||||
COPY vendor.conf /go/src/github.com/containerd/containerd/vendor.conf
|
||||
COPY script/setup/install-runc install-runc
|
||||
RUN ./install-runc
|
||||
|
||||
FROM golang:1.9.3
|
||||
RUN apt-get update && apt-get install -y btrfs-tools gcc git libapparmor-dev libseccomp-dev make xfsprogs
|
||||
|
||||
COPY --from=proto3 /usr/local/bin/protoc /usr/local/bin/protoc
|
||||
COPY --from=proto3 /usr/local/include/google /usr/local/include/google
|
||||
|
||||
COPY --from=runc /usr/local/sbin/runc /usr/local/go/bin/runc
|
||||
COPY . /go/src/github.com/containerd/containerd
|
||||
|
||||
WORKDIR /go/src/github.com/containerd/containerd
|
@ -20,7 +20,7 @@ func testSupportsDType(t *testing.T, expected bool, mkfs ...string) {
|
||||
}
|
||||
defer os.RemoveAll(mnt)
|
||||
|
||||
deviceName, cleanupDevice, err := testutil.NewLoopback(100 << 20) // 100 MB
|
||||
deviceName, cleanupDevice, err := testutil.NewLoopback(150 << 20) // 150 MB
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ func testLookup(t *testing.T, fsType string) {
|
||||
}
|
||||
defer os.RemoveAll(mnt)
|
||||
|
||||
deviceName, cleanupDevice, err := testutil.NewLoopback(100 << 20) // 100 MB
|
||||
deviceName, cleanupDevice, err := testutil.NewLoopback(150 << 20) // 150 MB
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
40
script/setup/install-protobuf
Executable file
40
script/setup/install-protobuf
Executable file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Downloads and installs protobuf
|
||||
#
|
||||
set -eux -o pipefail
|
||||
|
||||
PROTOBUF_VERSION=3.5.1
|
||||
GOARCH=$(go env GOARCH)
|
||||
GOOS=$(go env GOOS)
|
||||
PROTOBUF_DIR=$(mktemp -d)
|
||||
|
||||
case $GOARCH in
|
||||
|
||||
arm64)
|
||||
wget -O $PROTOBUF_DIR/protobuf "https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-aarch64.zip"
|
||||
unzip $PROTOBUF_DIR/protobuf -d /usr/local
|
||||
;;
|
||||
|
||||
amd64|386)
|
||||
if [ $GOOS == "windows" ]; then
|
||||
wget -O $PROTOBUF_DIR/protobuf "https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-win32.zip"
|
||||
elif [ $GOOS == "linux" ]; then
|
||||
wget -O $PROTOBUF_DIR/protobuf "https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-x86_64.zip"
|
||||
fi
|
||||
unzip $PROTOBUF_DIR/protobuf -d /usr/local
|
||||
;;
|
||||
|
||||
*)
|
||||
wget -O $PROTOBUF_DIR/protobuf "https://github.com/google/protobuf/releases/download/v$PROTOBUF_VERSION/protobuf-cpp-$PROTOBUF_VERSION.zip"
|
||||
unzip $PROTOBUF_DIR/protobuf -d /usr/src/protobuf
|
||||
cd /usr/src/protobuf/protobuf-$PROTOBUF_VERSION
|
||||
./autogen.sh
|
||||
./configure --disable-shared
|
||||
make
|
||||
make check
|
||||
make install
|
||||
ldconfig
|
||||
;;
|
||||
esac
|
||||
rm -rf $PROTOBUF_DIR
|
13
script/setup/install-runc
Executable file
13
script/setup/install-runc
Executable file
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Builds and installs runc to /usr/local/go/bin based off
|
||||
# the commit defined in vendor.conf
|
||||
#
|
||||
set -eux -o pipefail
|
||||
|
||||
RUNC_COMMIT=$(grep opencontainers/runc ${GOPATH}/src/github.com/containerd/containerd/vendor.conf | cut -d " " -f 2)
|
||||
|
||||
go get -u github.com/opencontainers/runc
|
||||
cd $GOPATH/src/github.com/opencontainers/runc
|
||||
git checkout $RUNC_COMMIT
|
||||
make BUILDTAGS="apparmor seccomp" runc install
|
@ -29,7 +29,7 @@ func boltSnapshotter(t *testing.T) func(context.Context, string) (snapshots.Snap
|
||||
|
||||
return func(ctx context.Context, root string) (snapshots.Snapshotter, func() error, error) {
|
||||
|
||||
deviceName, cleanupDevice, err := testutil.NewLoopback(100 << 20) // 100 MB
|
||||
deviceName, cleanupDevice, err := testutil.NewLoopback(150 << 20) // 150 MB
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user