miragesdk: fix the build after the switch from mirage tool to jbuilder

Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
This commit is contained in:
Thomas Gazagnaire 2017-03-31 19:04:39 +02:00
parent e976a6c4aa
commit e3939e03c0
4 changed files with 35 additions and 23 deletions

View File

@ -17,16 +17,6 @@ system:
- /proc/sys/fs/binfmt_misc:/binfmt_misc
read_only: true
command: [/usr/bin/binfmt, -dir, /etc/binfmt.d/, -mount, /binfmt_misc]
- name: dhcp-client
network_mode: host
image: "mobylinux/dhcp-client:aaf811d77ff8d8b2e16ca4dd9d0a2849ef8977b6"
capabilities:
- CAP_NET_ADMIN # to bring eth0 up
- CAP_NET_RAW # to read /dev/eth0
binds:
- /var/run/dhcp-client:/data
command: [/dhcp-client, -vv]
read_only: true
daemon:
- name: rngd
image: "mobylinux/rngd:3dad6dd43270fa632ac031e99d1947f20b22eec9@sha256:1c93c1db7196f6f71f8e300bc1d15f0376dd18e8891c8789d77c8ff19f3a9a92"
@ -35,6 +25,16 @@ daemon:
oom_score_adj: -800
read_only: true
command: [/bin/tini, /usr/sbin/rngd, -f]
- name: dhcp-client
network_mode: host
image: "mobylinux/dhcp-client:f40cafe2ade4b115704750a85d21eb35b1116b91"
capabilities:
- CAP_NET_ADMIN # to bring eth0 up
- CAP_NET_RAW # to read /dev/eth0
binds:
- /var/run/dhcp-client:/data
command: [/dhcp-client, -vv]
read_only: true
files:
- path: /var/run/dhcp-client/README
contents: 'data for dhcp-client'

View File

@ -5,6 +5,7 @@ obj/
hash
# Generated by jbuilder
dhcp-client/calf/.merlin
dhcp-client/bpf/.merlin
dhcp-client/.merlin
sdk/.merlin

View File

@ -7,6 +7,14 @@ RUN opam pin -n add mirage-net-unix https://github.com/samoht/mirage-net-unix.gi
RUN opam depext -iy mirage-net-unix logs-syslog irmin-unix cohttp decompress
RUN opam depext -iy rawlink tuntap.1.0.0 jbuilder irmin-watcher inotify
RUN opam install rresult
RUN opam pin add cstruct --dev # for ppx/jbuilder
RUN opam pin add tuntap 1.0.0
# TMP: to compile the calf
RUN opam pin add -n charrua-client https://github.com/yomimono/charrua-client.git#state-halfway
RUN opam depext -uiy ocamlfind topkg-care ocamlbuild lwt mirage-types-lwt mirage
RUN opam depext -uiy charrua-client cohttp conduit mirage-unix
RUN opam depext -uiy mirage-net-fd ptime mirage-logs
RUN sudo mkdir -p /src
COPY ./sdk /src/sdk
@ -16,7 +24,8 @@ RUN sudo chown opam -R /src
USER opam
WORKDIR /src
RUN opam pin add cstruct --dev # for ppx/jbuilder
RUN opam config exec -- jbuilder build dhcp-client/main.exe
RUN sudo cp /src/_build/default/dhcp-client/main.exe /dhcp-client
RUN opam config exec -- jbuilder build dhcp-client/calf/unikernel.exe
RUN sudo cp /src/_build/default/dhcp-client/calf/unikernel.exe /dhcp-client-calf

View File

@ -8,7 +8,8 @@ OBJS=obj/dhcp-client
MIRAGE_COMPILE=mobylinux/mirage-compile:f903b0e1b4328271364cc63f123ac49d56739cef@sha256:a54d9ca84d3f5998dba92ce83d60d49289cee8908a8b0f6ec280d30ab8edf46c
CALF_OBJS=obj/dhcp-client-calf
CALF_FILES=dhcp-client/calf/config.ml dhcp-client/calf/unikernel.ml
CALF_FILES=dhcp-client/calf/config.ml dhcp-client/calf/unikernel.ml \
dhcp-client/calf/jbuild
default: push
@
@ -34,18 +35,18 @@ enter-build: .build
enter-dev: .dev
docker run --privileged -it -v `pwd`:/src $(shell cat .dev)
$(CALF_OBJS): $(CALF_FILES)
mkdir -p obj/bin
( cd obj && \
tar -C ../dhcp-client/calf -cf - $(CALF_FILES:dhcp-client/calf/%=%) | \
docker run --rm -i --log-driver=none $(MIRAGE_COMPILE) -o dhcp-client-calf | \
tar xf - || exit 1) && \
touch $@
#$(CALF_OBJS): $(CALF_FILES)
# mkdir -p obj/bin
# ( cd obj && \
# tar -C ../dhcp-client/calf -cf - $(CALF_FILES:dhcp-client/calf/%=%) | \
# docker run --rm -i --log-driver=none $(MIRAGE_COMPILE) -o dhcp-client-calf | \
# tar xf - || exit 1) && \
# touch $@
$(OBJS): .build $(FILES)
$(OBJS) $(CALF_OBJS): .build $(FILES) $(CALF_FILES)
mkdir -p obj/usr/lib obj/bin
( cd obj && \
docker run --rm --net=none --log-driver=none -i $(IMAGE):build tar -cf - $(OBJS:obj/%=/%) | tar xf - ) && \
docker run --rm --net=none --log-driver=none -i $(IMAGE):build tar -cf - $(OBJS:obj/%=/%) $(CALF_OBJS:obj/%=/%) | tar xf - ) && \
touch $@
hash: Makefile Dockerfile.build Dockerfile.pkg $(FILES) $(CALF_FILES) .build
@ -77,7 +78,8 @@ dev-clean:
rm -rf _build dhcp-client/calf/_build
dev:
cd dhcp-client/calf && mirage configure && make
jbuilder build dhcp-client/main.exe --dev
jbuilder build dhcp-client/calf/unikernel.exe --dev
# cd dhcp-client/calf && mirage configure && make
.DELETE_ON_ERROR: