mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-20 09:39:08 +00:00
sdk: fix dhcp's Dockerfile
The rootfs were containing way too much binaries and runc command where not started in the correct directory. Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
This commit is contained in:
parent
6fb3820925
commit
e76d6c09a4
@ -56,7 +56,6 @@ RUN opam update sdk && opam install sdk -t
|
||||
|
||||
FROM sdk as priv
|
||||
|
||||
RUN opam pin add tuntap 1.0.0 -n
|
||||
RUN opam depext -iy bos cmdliner
|
||||
|
||||
RUN opam list
|
||||
@ -65,8 +64,8 @@ COPY ./dhcp-client /src/dhcp-client
|
||||
RUN sudo chown opam -R /src
|
||||
|
||||
RUN opam config exec -- jbuilder build dhcp-client/main.exe
|
||||
RUN sudo mkdir -p /bin
|
||||
RUN sudo cp /src/_build/default/dhcp-client/main.exe /bin/dhcp-client
|
||||
RUN sudo mkdir -p /out
|
||||
RUN sudo cp /src/_build/default/dhcp-client/main.exe /out/dhcp-client
|
||||
|
||||
|
||||
### Calf Container
|
||||
@ -85,15 +84,15 @@ COPY ./dhcp-client-calf/jbuild /src/dhcp-client-calf/
|
||||
RUN sudo chown opam -R /src
|
||||
|
||||
RUN opam config exec -- jbuilder build dhcp-client-calf/unikernel.exe
|
||||
RUN sudo mkdir -p /bin/calf
|
||||
RUN sudo cp /src/_build/default/dhcp-client-calf/unikernel.exe /bin/calf/dhcp-client-calf
|
||||
USER 0
|
||||
RUN sudo mkdir -p /out/
|
||||
RUN sudo cp /src/_build/default/dhcp-client-calf/unikernel.exe /out/dhcp-client-calf
|
||||
|
||||
### Final build
|
||||
|
||||
FROM scratch
|
||||
|
||||
COPY --from=priv /bin /
|
||||
COPY --from=calf /bin /
|
||||
COPY dhcp-client-calf/config.json /calf/
|
||||
USER 0
|
||||
COPY --from=priv /out /
|
||||
COPY --from=calf /out /calf/rootfs/
|
||||
COPY dhcp-client-calf/config.json /calf
|
||||
CMD ["/dhcp-client", "-vv"]
|
||||
|
@ -17,7 +17,7 @@
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"path": "calf",
|
||||
"path": "rootfs",
|
||||
"readonly": true
|
||||
},
|
||||
"mounts": [
|
||||
|
@ -60,7 +60,7 @@ let default_cmd = [
|
||||
*)
|
||||
|
||||
let default_cmd = [
|
||||
"/usr/bin/runc"; "run"; "--preserve-fds"; "2"; "--bundle"; "."; "calf"
|
||||
"/usr/bin/runc"; "run"; "--preserve-fds"; "2"; "--bundle"; "calf"; "calf"
|
||||
]
|
||||
|
||||
let read_cmd file =
|
||||
|
@ -23,7 +23,7 @@ depends: [
|
||||
"decompress"
|
||||
"capnp-rpc-lwt"
|
||||
"rawlink"
|
||||
"tuntap"
|
||||
"tuntap" {= "1.0.0"}
|
||||
"ipaddr"
|
||||
"alcotest" {test}
|
||||
]
|
||||
|
@ -2,8 +2,12 @@
|
||||
|
||||
open Lwt.Infix
|
||||
|
||||
let src = Logs.Src.create "net" ~doc:"Network Configuration"
|
||||
module Log = (val Logs.src_log src : Logs.LOG)
|
||||
|
||||
let run fmt =
|
||||
Fmt.kstrf (fun str ->
|
||||
Log.info (fun l -> l "run: %S" str);
|
||||
match Sys.command str with
|
||||
| 0 -> Lwt.return ()
|
||||
| i -> Fmt.kstrf Lwt.fail_with "%S exited with code %d" str i
|
||||
|
Loading…
Reference in New Issue
Block a user