summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTamir Duberstein <tamird@google.com>2020-09-11 01:55:59 -0700
committergVisor bot <gvisor-bot@google.com>2020-09-11 01:57:42 -0700
commit964447c8ce1ba4f3c7413e90069a045fe0877c2a (patch)
treef53c64671dc03479577ed8ad3dea08dbf0330307
parent365545855f7713236d77d3e263ad09ebffa85bb2 (diff)
Clean up image construction
- Skip `docker inspect`; `docker pull` is idempotent - Remove unnecessary CMD directives in Dockerfiles - Run bazel before building images to catch errors sooner PiperOrigin-RevId: 331107815
-rw-r--r--images/Makefile6
-rw-r--r--images/packetdrill/Dockerfile2
-rw-r--r--images/packetimpact/Dockerfile2
-rwxr-xr-xscripts/packetdrill_tests.sh4
-rwxr-xr-xscripts/packetimpact_tests.sh5
5 files changed, 9 insertions, 10 deletions
diff --git a/images/Makefile b/images/Makefile
index d183155a8..d4b6524ba 100644
--- a/images/Makefile
+++ b/images/Makefile
@@ -61,7 +61,7 @@ local_image = $(LOCAL_IMAGE_PREFIX)/$(subst _,/,$(1))
# conflicting with the bazel "build" terminology, which is used elsewhere.
rebuild-%: FROM=$(shell grep FROM $(call path,$*)/Dockerfile | cut -d' ' -f2)
rebuild-%: register-cross
- $(foreach IMAGE,$(FROM),docker pull $(DOCKER_PLATFORM_ARGS) $(IMAGE) &&) true && \
+ $(foreach IMAGE,$(FROM),docker pull $(DOCKER_PLATFORM_ARGS) $(IMAGE) &&) \
T=$$(mktemp -d) && cp -a $(call path,$*)/* $$T && \
docker build $(DOCKER_PLATFORM_ARGS) -t $(call remote_image,$*) $$T && \
rm -rf $$T
@@ -73,10 +73,10 @@ pull-%:
docker pull $(DOCKER_PLATFORM_ARGS) $(call remote_image,$*)
# load will either pull the "remote" or build it locally. This is the preferred
-# entrypoint, as it should never file. The local tag should always be set after
+# entrypoint, as it should never fail. The local tag should always be set after
# this returns (either by the pull or the build).
load-%:
- docker inspect $(call remote_image,$*) >/dev/null 2>&1 || $(MAKE) pull-$* || $(MAKE) rebuild-$*
+ $(MAKE) pull-$* || $(MAKE) rebuild-$*
docker tag $(call remote_image,$*) $(call local_image,$*)
# push pushes the remote image, after either pulling (to validate that the tag
diff --git a/images/packetdrill/Dockerfile b/images/packetdrill/Dockerfile
index 01296dbaf..b4cd73006 100644
--- a/images/packetdrill/Dockerfile
+++ b/images/packetdrill/Dockerfile
@@ -1,8 +1,8 @@
FROM ubuntu:bionic
RUN apt-get update && apt-get install -y net-tools git iptables iputils-ping \
netcat tcpdump jq tar bison flex make
+# Pick up updated git.
RUN hash -r
RUN git clone --depth 1 --branch packetdrill-v2.0 \
https://github.com/google/packetdrill.git
RUN cd packetdrill/gtests/net/packetdrill && ./configure && make
-CMD /bin/bash
diff --git a/images/packetimpact/Dockerfile b/images/packetimpact/Dockerfile
index 82b7e8abd..906d5cdd6 100644
--- a/images/packetimpact/Dockerfile
+++ b/images/packetimpact/Dockerfile
@@ -16,5 +16,3 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
qemu-system-x86 \
# sha1sum to generate entropy.
libdigest-sha-perl
-RUN hash -r
-CMD /bin/bash
diff --git a/scripts/packetdrill_tests.sh b/scripts/packetdrill_tests.sh
index 1a8181ac8..cdb98c834 100755
--- a/scripts/packetdrill_tests.sh
+++ b/scripts/packetdrill_tests.sh
@@ -16,8 +16,8 @@
source $(dirname $0)/common.sh
-make load-packetdrill
+QUERY_RESULT=$(query 'attr(tags, manual, tests(//test/packetdrill/...))')
install_runsc_for_test runsc-d
-QUERY_RESULT=$(query "attr(tags, manual, tests(//test/packetdrill/...))")
+make load-packetdrill
test_runsc $QUERY_RESULT
diff --git a/scripts/packetimpact_tests.sh b/scripts/packetimpact_tests.sh
index 77fb84bc3..4878b72f4 100755
--- a/scripts/packetimpact_tests.sh
+++ b/scripts/packetimpact_tests.sh
@@ -16,8 +16,9 @@
source $(dirname $0)/common.sh
-make load-packetimpact
+
+QUERY_RESULT=$(query 'attr(tags, packetimpact, tests(//test/packetimpact/...))')
install_runsc_for_test runsc-d
-QUERY_RESULT=$(query "attr(tags, packetimpact, tests(//test/packetimpact/...))")
+make load-packetimpact
test_runsc $QUERY_RESULT