Skip to content

Commit 34dbd78

Browse files
committed
Optimize docker builds with .dockerignore
Improve tests
1 parent e4e0da8 commit 34dbd78

File tree

3 files changed

+27
-16
lines changed

3 files changed

+27
-16
lines changed

.dockerignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
target
2+
dist
3+
deps/criu-image-streamer/target
4+
deps/libvirtcpuid/musl
5+
**/*.o
6+
.git

scripts/Dockerfile.test

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
FROM debian:10
22

33
RUN apt-get update
4-
RUN apt-get install -y xz-utils libcap2-bin
4+
RUN apt-get install -y xz-utils libcap2-bin jq
55

66
#RUN apt-get install -y strace procps elfutils gdb binutils vim patchelf
77

88
COPY fastfreeze.tar.xz /tmp
99

10-
RUN apt-get install -y jq
11-
1210
RUN set -ex; \
1311
tar xf /tmp/fastfreeze.tar.xz -C /opt; \
1412
ln -s /opt/fastfreeze/fastfreeze /usr/local/bin/; \

scripts/run_tests.sh

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
set -ex
2+
set -eux
33

44
# Before running this, run ./build.sh
55
# TODO We need a bit more tests. Perhaps using something like Python would make
@@ -28,22 +28,24 @@ sudo bash -c 'echo 0 > /proc/sys/kernel/yama/ptrace_scope'
2828
# In the following, we don't need cap_sys_ptrace, but it makes Docker
2929
# relax its seccomp filters on kcmp(), which CRIU needs.
3030

31+
# Forget to put cap-add, and get Permission Denied
3132
docker run \
3233
--rm \
3334
--user nobody \
3435
--cap-add=cap_sys_ptrace \
3536
--name ff \
36-
--mount type=bind,source=$IMAGE_DIR,target=/images \
37-
--env FF_METRICS_RECORDER=/images/show_metrics.sh \
37+
--mount type=bind,source=$IMAGE_DIR,target=$IMAGE_DIR \
38+
--env FF_METRICS_RECORDER=$IMAGE_DIR/show_metrics.sh \
3839
fastfreeze-test:latest \
3940
fastfreeze run -v \
40-
--image-url file:/images/test-1 \
41-
--passphrase-file /images/encryption_key -- sleep 30d &
42-
sleep 2 # wait for app started
41+
--image-url $IMAGE_DIR/test-image \
42+
--on-app-ready "touch $IMAGE_DIR/run1.ready" \
43+
--passphrase-file $IMAGE_DIR/encryption_key -- \
44+
sleep 30d &
4345

44-
# Forget to put cap-add, and get Permission Denied
46+
timeout 10 bash -c "while [ ! -e $IMAGE_DIR/run1.ready ]; do sleep 0.1; done"
4547

46-
docker exec --env FF_METRICS_RECORDER=/images/show_metrics.sh ff fastfreeze checkpoint -v
48+
docker exec --env FF_METRICS_RECORDER=$IMAGE_DIR/show_metrics.sh ff fastfreeze checkpoint -v
4749

4850
wait
4951

@@ -52,13 +54,18 @@ docker run \
5254
--user nobody \
5355
--cap-add=cap_sys_ptrace \
5456
--name ff \
55-
--mount type=bind,source=$IMAGE_DIR,target=/images \
56-
--env FF_METRICS_RECORDER=/images/show_metrics.sh \
57+
--mount type=bind,source=$IMAGE_DIR,target=$IMAGE_DIR \
58+
--env FF_METRICS_RECORDER=$IMAGE_DIR/show_metrics.sh \
5759
fastfreeze-test:latest \
5860
fastfreeze run -v \
59-
--image-url file:/images/test-1 \
60-
--passphrase-file /images/encryption_key -- sleep 30d &
61-
sleep 2 # wait for app restore
61+
--image-url $IMAGE_DIR/test-image \
62+
--on-app-ready "touch $IMAGE_DIR/run2.ready" \
63+
--passphrase-file $IMAGE_DIR/encryption_key -- \
64+
sleep 30d &
65+
66+
timeout 10 bash -c "while [ ! -e $IMAGE_DIR/run2.ready ]; do sleep 0.1; done"
67+
68+
docker exec --env FF_METRICS_RECORDER=$IMAGE_DIR/show_metrics.sh ff fastfreeze wait -v
6269

6370
docker exec ff fastfreeze checkpoint
6471

0 commit comments

Comments
 (0)