From b16b457306bb255653b0d0e33f4fe2f134307242 Mon Sep 17 00:00:00 2001 From: David Gageot Date: Thu, 22 Dec 2016 15:59:01 +0100 Subject: [PATCH 1/4] Flag GCP platform Signed-off-by: David Gageot --- alpine/base/mkimage-gce/syslinux.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alpine/base/mkimage-gce/syslinux.cfg b/alpine/base/mkimage-gce/syslinux.cfg index 73a12a659..e2a5892c2 100644 --- a/alpine/base/mkimage-gce/syslinux.cfg +++ b/alpine/base/mkimage-gce/syslinux.cfg @@ -2,4 +2,4 @@ DEFAULT linux LABEL linux KERNEL /vmlinuz64 INITRD /initrd.img - APPEND earlyprintk=ttyS0,115200 console=ttyS0,115200 + APPEND earlyprintk=ttyS0,115200 console=ttyS0,115200 mobyplatform=gcp From 054b49cccab6649e0ad81c36aee016fe19b31e6d Mon Sep 17 00:00:00 2001 From: David Gageot Date: Thu, 22 Dec 2016 16:00:52 +0100 Subject: [PATCH 2/4] Update mobylinux/mkimage-gce image Signed-off-by: David Gageot --- alpine/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alpine/Makefile b/alpine/Makefile index e6488911f..6b397fd46 100644 --- a/alpine/Makefile +++ b/alpine/Makefile @@ -19,8 +19,8 @@ PAD4_IMAGE=mobylinux/pad4@sha256:a26e02f16bdafa241a55e05fa09b9bb260e69a3a8c90418 # Tag: 74b6ce93033430a58826d90b0b88513e0dcfcb5a TAR2INITRD_IMAGE=mobylinux/tar2initrd@sha256:42e242f5bf8dc7971c1f0e6e7b156008d930d5b3129136e72c4b867f2ff15e98 -# Tag: df1b8ef666d66694e84f23772937ff45c46fa6c1 -GCE_IMAGE=mobylinux/mkimage-gce@sha256:b19ba24184ed5602df5b666ed475d5d7211fa67bee51d3e6380cf0380c63f65b +# Tag: 77bc577875fb3a80ac2d14b70d1daa885bbf199c +GCE_IMAGE=mobylinux/mkimage-gce@sha256:f9abf2eae20984b7dd3c1afb700b2c9c41e39e6e7c688c78348a51d0780d74cc moby.img: Dockerfile mkinitrd.sh init $(ETCFILES) $(MAKE) -C kernel From 86c29efe877ee48d49525a5b18002a1393cf0259 Mon Sep 17 00:00:00 2001 From: David Gageot Date: Thu, 22 Dec 2016 18:36:26 +0100 Subject: [PATCH 3/4] Change the bucket where Moby is pushed for GCE And make the image public Signed-off-by: David Gageot --- alpine/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alpine/Makefile b/alpine/Makefile index 6b397fd46..33a75787e 100644 --- a/alpine/Makefile +++ b/alpine/Makefile @@ -87,7 +87,7 @@ gce.img.tar.gz: common docker run --rm --net=none --log-driver=none -i $(GCE_IMAGE) >$@ gce-upload: - docker run -it --rm --volumes-from gcloud-config google/cloud-sdk gsutil cp gce.img.tar.gz gs://docker4x-moby-images/ + docker run -it --rm --volumes-from gcloud-config google/cloud-sdk gsutil cp -a public-read gce.img.tar.gz gs://docker-for-gcp-images/ common: initrd.img $(MAKE) -C kernel From a54f2ae179715dfc9873eb19fec7aecd93a52061 Mon Sep 17 00:00:00 2001 From: David Gageot Date: Thu, 22 Dec 2016 16:01:40 +0100 Subject: [PATCH 4/4] Specific init.d script for GCP Signed-off-by: David Gageot --- alpine/Dockerfile | 1 + alpine/Makefile | 1 + alpine/packages/docker/etc/init.d/docker | 4 ++++ alpine/packages/gcp/etc/init.d/gcp | 29 ++++++++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100755 alpine/packages/gcp/etc/init.d/gcp diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 2340333ad..d065c5e20 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -57,6 +57,7 @@ RUN \ rc-update add containerd default && \ rc-update add aws default && \ rc-update add azure default && \ + rc-update add gcp default && \ true CMD ["/mkinitrd.sh"] diff --git a/alpine/Makefile b/alpine/Makefile index 33a75787e..f526db9d9 100644 --- a/alpine/Makefile +++ b/alpine/Makefile @@ -49,6 +49,7 @@ moby.img: Dockerfile mkinitrd.sh init $(ETCFILES) -C packages/containerd etc -C ../.. \ -C packages/aws etc -C ../.. \ -C packages/azure etc -C ../.. \ + -C packages/gcp etc -C ../.. \ | \ docker build -q - ) && [ -n "$$BUILD" ] && echo "Built $$BUILD" && \ echo $$BUILD > mobylinux.tag && \ diff --git a/alpine/packages/docker/etc/init.d/docker b/alpine/packages/docker/etc/init.d/docker index b3c9e5f21..2ae2a0cc8 100755 --- a/alpine/packages/docker/etc/init.d/docker +++ b/alpine/packages/docker/etc/init.d/docker @@ -86,6 +86,10 @@ start() cat /etc/docker/daemon.json | jq -e 'has("experimental")' > /dev/null || DOCKER_OPTS="${DOCKER_OPTS} --experimental" fi + # On GCP, send logs to Google Cloud Logging + # Disabled because of https://github.com/docker/docker/issues/29344 + # [ $(mobyplatform) = "gcp" ] && DOCKER_OPTS="${DOCKER_OPTS} --log-driver=gcplogs" + # choose storage driver if ! $(cat /etc/docker/daemon.json | jq -e '."storage-driver"' > /dev/null) then diff --git a/alpine/packages/gcp/etc/init.d/gcp b/alpine/packages/gcp/etc/init.d/gcp new file mode 100755 index 000000000..9da3441a4 --- /dev/null +++ b/alpine/packages/gcp/etc/init.d/gcp @@ -0,0 +1,29 @@ +#!/sbin/openrc-run + +description="Bootstrap procedure if running on Docker GCP edition" + +depend() +{ + need docker + need net +} + +start() +{ + [ "$(mobyplatform)" != "gcp" ] && exit 0 + ebegin "Running GCP-specific initialization" + + ebegin "Run startup script" + + temp_file=$(mktemp) + curl -s http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script -H "Metadata-Flavor: Google" > ${temp_file} + [ -s "${temp_file}" ] && sh "${temp_file}" + rm -f "${temp_file}" + + eend 0 +} + +stop() +{ + [ "$(mobyplatform)" != "gcp" ] && exit 0 +}