mirror of
https://github.com/genuinetools/reg.git
synced 2024-09-28 11:46:20 -04:00
update test
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
This commit is contained in:
parent
758d45bea2
commit
74ab433f76
3 changed files with 48 additions and 54 deletions
|
@ -1,47 +0,0 @@
|
|||
FROM alpine:3.3
|
||||
|
||||
# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
|
||||
RUN apk add --no-cache \
|
||||
btrfs-progs \
|
||||
ca-certificates \
|
||||
curl \
|
||||
e2fsprogs \
|
||||
e2fsprogs-extra \
|
||||
iptables \
|
||||
xfsprogs \
|
||||
xz
|
||||
|
||||
ENV DOCKER_BUCKET get.docker.com
|
||||
ENV DOCKER_VERSION 1.11.1
|
||||
ENV DOCKER_SHA256 893e3c6e89c0cd2c5f1e51ea41bc2dd97f5e791fcfa3cee28445df277836339d
|
||||
|
||||
RUN set -x \
|
||||
&& curl -fSL "https://${DOCKER_BUCKET}/builds/Linux/x86_64/docker-$DOCKER_VERSION.tgz" -o docker.tgz \
|
||||
&& echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \
|
||||
&& tar -xzvf docker.tgz \
|
||||
&& mv docker/* /usr/local/bin/ \
|
||||
&& rmdir docker \
|
||||
&& rm docker.tgz \
|
||||
&& docker -v
|
||||
|
||||
# we need adduser/useradd for userns
|
||||
RUN apk add --no-cache \
|
||||
--repository http://dl-3.alpinelinux.org/alpine/edge/community/ \
|
||||
shadow
|
||||
|
||||
ENV DIND_COMMIT 3b5fac462d21ca164b3778647420016315289034
|
||||
|
||||
RUN wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \
|
||||
&& sed -i.bak 's/#!\/bin\/bash/#!\/bin\/sh/' /usr/local/bin/dind \
|
||||
&& rm -rf /usr/local/bin/*.bak \
|
||||
&& chmod +x /usr/local/bin/dind
|
||||
|
||||
RUN touch /etc/subuid \
|
||||
&& touch /etc/subgid
|
||||
|
||||
EXPOSE 2375
|
||||
|
||||
COPY config /etc/docker/daemon/config
|
||||
WORKDIR /etc/docker/daemon/config
|
||||
|
||||
ENTRYPOINT ["./setup_certs.sh"]
|
10
Makefile
10
Makefile
|
@ -142,25 +142,23 @@ endif
|
|||
DIND_CONTAINER=reg-dind
|
||||
DIND_DOCKER_IMAGE=r.j3ss.co/docker:userns
|
||||
dind: ## Starts a docker-in-docker container for running the tests with
|
||||
docker build --rm --force-rm -f Dockerfile.dind -t $(DIND_DOCKER_IMAGE) .
|
||||
docker run -d \
|
||||
-v /var/lib/docker2:/var/lib/docker \
|
||||
--name $(DIND_CONTAINER) \
|
||||
--privileged \
|
||||
-v $(CURDIR)/.certs:/etc/docker/ssl \
|
||||
-v $(CURDIR):/go/src/github.com/jessfraz/reg \
|
||||
-v /tmp:/tmp \
|
||||
$(DIND_DOCKER_IMAGE) \
|
||||
docker daemon -D --storage-driver $(DOCKER_GRAPHDRIVER) \
|
||||
dockerd -D --storage-driver $(DOCKER_GRAPHDRIVER) \
|
||||
-H tcp://127.0.0.1:2375 \
|
||||
--host=unix:///var/run/docker.sock \
|
||||
--disable-legacy-registry=true \
|
||||
--exec-opt=native.cgroupdriver=cgroupfs \
|
||||
--insecure-registry localhost:5000 \
|
||||
--tlsverify \
|
||||
--tlscacert=/etc/docker/ssl/ca.pem \
|
||||
--tlskey=/etc/docker/ssl/key.pem \
|
||||
--tlscert=/etc/docker/ssl/cert.pem
|
||||
--tlscacert=/etc/docker/ssl/cacert.pem \
|
||||
--tlskey=/etc/docker/ssl/server.key \
|
||||
--tlscert=/etc/docker/ssl/server.cert
|
||||
|
||||
.PHONY: dtest
|
||||
DOCKER_IMAGE := reg-dev
|
||||
|
|
45
main_test.go
45
main_test.go
|
@ -4,12 +4,16 @@ import (
|
|||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"testing"
|
||||
|
||||
"github.com/docker/docker/api"
|
||||
"github.com/docker/docker/client"
|
||||
"github.com/docker/go-connections/tlsconfig"
|
||||
"github.com/jessfraz/reg/testutils"
|
||||
)
|
||||
|
||||
|
@ -57,7 +61,7 @@ func TestMain(m *testing.M) {
|
|||
defer os.Remove("testreg" + exeSuffix)
|
||||
|
||||
// create the docker client
|
||||
dcli, err := client.NewEnvClient()
|
||||
dcli, err := newEnvDockerClient()
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("could not connect to docker: %v", err))
|
||||
}
|
||||
|
@ -109,3 +113,42 @@ alpine latest
|
|||
t.Fatalf("expected: %s\ngot: %s", expected, out)
|
||||
}
|
||||
}
|
||||
|
||||
func newEnvDockerClient() (*client.Client, error) {
|
||||
var hc *http.Client
|
||||
|
||||
if dockerCertPath := os.Getenv("DOCKER_CERT_PATH"); dockerCertPath != "" {
|
||||
options := tlsconfig.Options{
|
||||
CAFile: filepath.Join(dockerCertPath, "cacert.pem"),
|
||||
CertFile: filepath.Join(dockerCertPath, "server.cert"),
|
||||
KeyFile: filepath.Join(dockerCertPath, "server.key"),
|
||||
InsecureSkipVerify: os.Getenv("DOCKER_TLS_VERIFY") == "",
|
||||
}
|
||||
tlsc, err := tlsconfig.Client(options)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
hc = &http.Client{
|
||||
Transport: &http.Transport{
|
||||
TLSClientConfig: tlsc,
|
||||
},
|
||||
CheckRedirect: client.CheckRedirect,
|
||||
}
|
||||
}
|
||||
|
||||
host := os.Getenv("DOCKER_HOST")
|
||||
if host == "" {
|
||||
host = client.DefaultDockerHost
|
||||
}
|
||||
version := os.Getenv("DOCKER_API_VERSION")
|
||||
if version == "" {
|
||||
version = api.DefaultVersion
|
||||
}
|
||||
|
||||
cli, err := client.NewClient(host, version, hc, nil)
|
||||
if err != nil {
|
||||
return cli, err
|
||||
}
|
||||
return cli, nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue