@@ -11,15 +11,41 @@ ami-stamp: files.tar.gz packer.json
11
11
packer build packer.json
12
12
touch $@
13
13
14
- files.tar.gz : firecracker-containerd fc-rootfs fc-config kernel ecr-resolver demo
14
+ files.tar.gz : containerd-shims firecracker-containerd fc-rootfs fc-config kernel ecr-resolver demo
15
15
tree files
16
16
tar cvzf $@ -C files .
17
17
18
- FC_BINS =containerd-shim-aws-firecracker firecracker firecracker-containerd firecracker-ctr
18
+ # The containerd shims are used for running non-Firecracker, standard Linux
19
+ # containers with runc.
20
+ # This is a bit of a hack to get the shims built properly. Our build of
21
+ # containerd has dependencies that are out of sync with upstream. Rather than
22
+ # trying to put them in sync, we can leverage "go install" to build the shims in
23
+ # the context of *our* dependencies.
24
+ # The downside of this is that it mutates go.mod/go.sum in our submodule. We
25
+ # can get around that by moving/copying it each time...
26
+ CONTAINERD_BINS =containerd-shim containerd-shim-runc-v1 containerd-shim-runc-v2
27
+ CONTAINERD_SOURCE_DIR =$(SUBMODULES ) /containerd/src/github.com/containerd/containerd
28
+ .PHONY : containerd-shims
29
+ containerd-shims : $(patsubst % , files/usr/local/bin/% , $(CONTAINERD_BINS ) )
30
+ $(patsubst % , files/usr/local/bin/% , $(CONTAINERD_BINS ) ) : firecracker-containerd-stamp
31
+ cp $(SUBMODULES ) /firecracker-containerd/go.mod $(SUBMODULES ) /firecracker-containerd/go.mod.backup
32
+ cp $(SUBMODULES ) /firecracker-containerd/go.sum $(SUBMODULES ) /firecracker-containerd/go.sum.backup
33
+ cd $(SUBMODULES ) /firecracker-containerd; GOBIN=$(CURDIR ) go install -tags=no_cri github.com/containerd/containerd/cmd/$(patsubst files/usr/local/bin/% ,% , $@ )
34
+ mv $(SUBMODULES ) /firecracker-containerd/go.mod.backup $(SUBMODULES ) /firecracker-containerd/go.mod
35
+ mv $(SUBMODULES ) /firecracker-containerd/go.sum.backup $(SUBMODULES ) /firecracker-containerd/go.sum
36
+ $(INSTALL_EXE ) -T $(patsubst files/usr/local/bin/% ,% , $@ ) $@
37
+
38
+ .PHONY : clean-containerd-shims
39
+ clean-containerd-shims :
40
+ rm -f $(CONTAINERD_BINS ) $(patsubst % , files/usr/local/bin/% , $(CONTAINERD_BINS ) )
41
+
42
+ FC_BINS =containerd-shim-aws-firecracker firecracker firecracker-containerd firecracker-ctr runc
19
43
.PHONY : firecracker-containerd
20
44
firecracker-containerd : $(patsubst % , files/usr/local/bin/% , $(FC_BINS ) ) firecracker-containerd-stamp
21
45
$(patsubst % , files/usr/local/bin/% , $(FC_BINS ) ) : firecracker-containerd-stamp
22
46
INSTALLROOT=$(PWD ) /files/usr/local fakeroot $(MAKE ) -C $(SUBMODULES ) /firecracker-containerd install install-firecracker
47
+ fakeroot $(MAKE ) -C $(SUBMODULES ) /firecracker-containerd _submodules/runc/runc
48
+ DESTDIR=$(PWD ) /files fakeroot $(MAKE ) -C $(SUBMODULES ) /firecracker-containerd/_submodules/runc install
23
49
# Get rid of unused binaries
24
50
rm $(patsubst % , files/usr/local/bin/% , jailer devmapper_snapshotter naive_snapshotter)
25
51
@@ -74,7 +100,7 @@ files/home/admin/.magic/demo-magic.sh: $(SUBMODULES)/demo-magic
74
100
$(INSTALL ) -t files/home/admin/.magic $(SUBMODULES ) /demo-magic/demo-magic.sh $(SUBMODULES ) /demo-magic/license.txt
75
101
76
102
.PHONY : clean
77
- clean :
103
+ clean : clean-containerd-shims
78
104
$(MAKE ) -C $(SUBMODULES ) /firecracker-containerd clean
79
105
$(MAKE ) -C $(SUBMODULES ) /amazon-ecr-containerd-resolver clean
80
106
rm -rf files files.tar.gz
0 commit comments