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_CONTAINER=reg-dind
|
||||||
DIND_DOCKER_IMAGE=r.j3ss.co/docker:userns
|
DIND_DOCKER_IMAGE=r.j3ss.co/docker:userns
|
||||||
dind: ## Starts a docker-in-docker container for running the tests with
|
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 \
|
docker run -d \
|
||||||
-v /var/lib/docker2:/var/lib/docker \
|
|
||||||
--name $(DIND_CONTAINER) \
|
--name $(DIND_CONTAINER) \
|
||||||
--privileged \
|
--privileged \
|
||||||
-v $(CURDIR)/.certs:/etc/docker/ssl \
|
-v $(CURDIR)/.certs:/etc/docker/ssl \
|
||||||
-v $(CURDIR):/go/src/github.com/jessfraz/reg \
|
-v $(CURDIR):/go/src/github.com/jessfraz/reg \
|
||||||
-v /tmp:/tmp \
|
-v /tmp:/tmp \
|
||||||
$(DIND_DOCKER_IMAGE) \
|
$(DIND_DOCKER_IMAGE) \
|
||||||
docker daemon -D --storage-driver $(DOCKER_GRAPHDRIVER) \
|
dockerd -D --storage-driver $(DOCKER_GRAPHDRIVER) \
|
||||||
-H tcp://127.0.0.1:2375 \
|
-H tcp://127.0.0.1:2375 \
|
||||||
--host=unix:///var/run/docker.sock \
|
--host=unix:///var/run/docker.sock \
|
||||||
--disable-legacy-registry=true \
|
--disable-legacy-registry=true \
|
||||||
--exec-opt=native.cgroupdriver=cgroupfs \
|
--exec-opt=native.cgroupdriver=cgroupfs \
|
||||||
--insecure-registry localhost:5000 \
|
--insecure-registry localhost:5000 \
|
||||||
--tlsverify \
|
--tlsverify \
|
||||||
--tlscacert=/etc/docker/ssl/ca.pem \
|
--tlscacert=/etc/docker/ssl/cacert.pem \
|
||||||
--tlskey=/etc/docker/ssl/key.pem \
|
--tlskey=/etc/docker/ssl/server.key \
|
||||||
--tlscert=/etc/docker/ssl/cert.pem
|
--tlscert=/etc/docker/ssl/server.cert
|
||||||
|
|
||||||
.PHONY: dtest
|
.PHONY: dtest
|
||||||
DOCKER_IMAGE := reg-dev
|
DOCKER_IMAGE := reg-dev
|
||||||
|
|
45
main_test.go
45
main_test.go
|
@ -4,12 +4,16 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/docker/docker/api"
|
||||||
"github.com/docker/docker/client"
|
"github.com/docker/docker/client"
|
||||||
|
"github.com/docker/go-connections/tlsconfig"
|
||||||
"github.com/jessfraz/reg/testutils"
|
"github.com/jessfraz/reg/testutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -57,7 +61,7 @@ func TestMain(m *testing.M) {
|
||||||
defer os.Remove("testreg" + exeSuffix)
|
defer os.Remove("testreg" + exeSuffix)
|
||||||
|
|
||||||
// create the docker client
|
// create the docker client
|
||||||
dcli, err := client.NewEnvClient()
|
dcli, err := newEnvDockerClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Errorf("could not connect to docker: %v", err))
|
panic(fmt.Errorf("could not connect to docker: %v", err))
|
||||||
}
|
}
|
||||||
|
@ -109,3 +113,42 @@ alpine latest
|
||||||
t.Fatalf("expected: %s\ngot: %s", expected, out)
|
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