mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 02:13:29 +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:
		| @@ -56,7 +56,6 @@ RUN opam update sdk && opam install sdk -t | |||||||
|  |  | ||||||
| FROM sdk as priv | FROM sdk as priv | ||||||
|  |  | ||||||
| RUN opam pin add tuntap 1.0.0 -n |  | ||||||
| RUN opam depext -iy bos cmdliner | RUN opam depext -iy bos cmdliner | ||||||
|  |  | ||||||
| RUN opam list | RUN opam list | ||||||
| @@ -65,8 +64,8 @@ COPY ./dhcp-client /src/dhcp-client | |||||||
| RUN sudo chown opam -R /src | RUN sudo chown opam -R /src | ||||||
|  |  | ||||||
| RUN opam config exec -- jbuilder build dhcp-client/main.exe | RUN opam config exec -- jbuilder build dhcp-client/main.exe | ||||||
| RUN sudo mkdir -p /bin | RUN sudo mkdir -p /out | ||||||
| RUN sudo cp /src/_build/default/dhcp-client/main.exe /bin/dhcp-client | RUN sudo cp /src/_build/default/dhcp-client/main.exe /out/dhcp-client | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Calf Container | ### Calf Container | ||||||
| @@ -85,15 +84,15 @@ COPY ./dhcp-client-calf/jbuild /src/dhcp-client-calf/ | |||||||
| RUN sudo chown opam -R /src | RUN sudo chown opam -R /src | ||||||
|  |  | ||||||
| RUN opam config exec -- jbuilder build dhcp-client-calf/unikernel.exe | RUN opam config exec -- jbuilder build dhcp-client-calf/unikernel.exe | ||||||
| RUN sudo mkdir -p /bin/calf | RUN sudo mkdir -p /out/ | ||||||
| RUN sudo cp /src/_build/default/dhcp-client-calf/unikernel.exe /bin/calf/dhcp-client-calf | RUN sudo cp /src/_build/default/dhcp-client-calf/unikernel.exe /out/dhcp-client-calf | ||||||
| USER 0 |  | ||||||
|  |  | ||||||
| ### Final build | ### Final build | ||||||
|  |  | ||||||
| FROM scratch | FROM scratch | ||||||
|  |  | ||||||
| COPY --from=priv /bin / | USER 0 | ||||||
| COPY --from=calf /bin / | COPY --from=priv /out / | ||||||
| COPY dhcp-client-calf/config.json /calf/ | COPY --from=calf /out /calf/rootfs/ | ||||||
|  | COPY dhcp-client-calf/config.json /calf | ||||||
| CMD ["/dhcp-client", "-vv"] | CMD ["/dhcp-client", "-vv"] | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ | |||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|     "root": { |     "root": { | ||||||
|         "path": "calf", |         "path": "rootfs", | ||||||
|         "readonly": true |         "readonly": true | ||||||
|     }, |     }, | ||||||
|     "mounts": [ |     "mounts": [ | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ let default_cmd = [ | |||||||
| *) | *) | ||||||
|  |  | ||||||
| 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 = | let read_cmd file = | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ depends: [ | |||||||
|   "decompress" |   "decompress" | ||||||
|   "capnp-rpc-lwt" |   "capnp-rpc-lwt" | ||||||
|   "rawlink" |   "rawlink" | ||||||
|   "tuntap" |   "tuntap" {= "1.0.0"} | ||||||
|   "ipaddr" |   "ipaddr" | ||||||
|   "alcotest" {test} |   "alcotest" {test} | ||||||
| ] | ] | ||||||
|   | |||||||
| @@ -2,8 +2,12 @@ | |||||||
|  |  | ||||||
| open Lwt.Infix | open Lwt.Infix | ||||||
|  |  | ||||||
|  | let src = Logs.Src.create "net" ~doc:"Network Configuration" | ||||||
|  | module Log = (val Logs.src_log src : Logs.LOG) | ||||||
|  |  | ||||||
| let run fmt = | let run fmt = | ||||||
|   Fmt.kstrf (fun str -> |   Fmt.kstrf (fun str -> | ||||||
|  |       Log.info (fun l -> l "run: %S" str); | ||||||
|       match Sys.command str with |       match Sys.command str with | ||||||
|       | 0 -> Lwt.return () |       | 0 -> Lwt.return () | ||||||
|       | i -> Fmt.kstrf Lwt.fail_with "%S exited with code %d" str i |       | i -> Fmt.kstrf Lwt.fail_with "%S exited with code %d" str i | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user