From 5c501c8ec8812fbf8027bc9f46ed635ff15d96e6 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Sat, 11 Mar 2017 23:37:36 -0500 Subject: docker-registry: provide via docker-distribution Follow the bouncing docker-registry package. Rather than use the docker hub registry container, we can have finer grained control if we clone and build the docker-distribution repository directly. Since this is distinct from the main docker package/codebase, we break the registry back out into its own package. We also create a baseline configuration and .service file that can be the basis for more complex implementations. Signed-off-by: Bruce Ashfield --- .../docker-distribution/docker-distribution_git.bb | 65 ++++++++++++++++++++++ .../files/docker-registry.service | 10 ++++ 2 files changed, 75 insertions(+) create mode 100644 recipes-containers/docker-distribution/docker-distribution_git.bb create mode 100644 recipes-containers/docker-distribution/files/docker-registry.service (limited to 'recipes-containers/docker-distribution') diff --git a/recipes-containers/docker-distribution/docker-distribution_git.bb b/recipes-containers/docker-distribution/docker-distribution_git.bb new file mode 100644 index 00000000..e86d4ff9 --- /dev/null +++ b/recipes-containers/docker-distribution/docker-distribution_git.bb @@ -0,0 +1,65 @@ +HOMEPAGE = "http://github.com/docker/distribution" +SUMMARY = "The Docker toolset to pack, ship, store, and deliver content" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314" + +DEPENDS = "go-cross-${TARGET_ARCH} \ + " + +SRCREV_distribution="0810eba2adf048b77621472991211924d9ec31c5" +SRC_URI = "git://github.com/docker/distribution.git;branch=master;name=distribution;destsuffix=git/src/github.com/docker/distribution \ + file://docker-registry.service \ + " + +PACKAGES =+ "docker-registry" + +PV = "v2.6.0-rc+git${SRCPV}" +S = "${WORKDIR}/git/src/github.com/docker/distribution" + +inherit go-osarchmap + +# This disables seccomp and apparmor, which are on by default in the +# go package. +EXTRA_OEMAKE="BUILDTAGS=''" + +do_compile() { + export GOARCH="${TARGET_GOARCH}" + export GOPATH="${WORKDIR}/git/" + + # Pass the needed cflags/ldflags so that cgo + # can find the needed headers files and libraries + export CGO_ENABLED="1" + export CFLAGS="" + export LDFLAGS="" + export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}" + export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" + + oe_runmake binaries +} + +do_install() { + install -d ${D}/${sbindir} + install ${S}/bin/registry ${D}/${sbindir} + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${WORKDIR}/docker-registry.service ${D}/${systemd_unitdir}/system + fi + + install -d ${D}/${sysconfdir}/docker-distribution/registry/ + install ${S}/cmd/registry/config-example.yml ${D}/${sysconfdir}/docker-distribution/registry/config.yml + + # storage for the registry containers + install -d ${D}/${localstatedir}/lib/registry/ +} + +INSANE_SKIP_${PN} += "ldflags already-stripped" +INSANE_SKIP_docker-registry += "ldflags already-stripped" + +FILES_docker-registry = "${sbindir}/*" +FILES_docker-registry += "${systemd_unitdir}/system/docker-registry.service" +FILES_docker-registry += "${sysconfdir}/docker-distribution/*" +FILES_docker-registry += "${localstatedir}/lib/registry/" + +SYSTEMD_SERVICE_docker-registry = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker-registry.service','',d)}" +SYSTEMD_AUTO_ENABLE_docker-registry = "enable" diff --git a/recipes-containers/docker-distribution/files/docker-registry.service b/recipes-containers/docker-distribution/files/docker-registry.service new file mode 100644 index 00000000..15460c7a --- /dev/null +++ b/recipes-containers/docker-distribution/files/docker-registry.service @@ -0,0 +1,10 @@ +[Unit] +Description=v2 Registry server for Docker + +[Service] +Type=simple +ExecStart=/usr/sbin/registry serve /etc/docker-distribution/registry/config.yml +Restart=on-failure + +[Install] +WantedBy=multi-user.target -- cgit v1.2.3-54-g00ecf