Skip to content

Commit 7c2dfdf

Browse files
authored
Merge pull request #253 from mtelvers/qemu-backend
Updated to include QEMU backend
2 parents ba26623 + 2b5792d commit 7c2dfdf

File tree

7 files changed

+21
-12
lines changed

7 files changed

+21
-12
lines changed

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
FROM ocaml/opam:debian-12-ocaml-4.14@sha256:650f6b9780c41f4ab594930957aa25012c60114d97638686678eb6979aa7df87 AS build
1+
FROM ocaml/opam:debian-12-ocaml-4.14@sha256:a41e1b0df0a727efab8dfe7860c19c4f4da63bbee905c3f0e975c3f77536ef29 AS build
22
RUN sudo apt-get update && sudo apt-get install libev-dev capnproto libcapnp-dev m4 pkg-config libsqlite3-dev libgmp-dev -y --no-install-recommends
33
RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni
4-
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 76d09264e920a27527de605cc64ef1d28ec353cd && opam update
4+
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 5d3f0d1d655199e596a1e785e69fae8fad78cad3 && opam update
55
COPY --chown=opam ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
66
COPY --chown=opam obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
77
RUN opam pin -yn /src/obuilder/

Dockerfile.worker

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
FROM ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:41ce765f59ecde9d8525ec58e0da7cd1317f3798d2c4951186aeef2ce804fad5 AS build
1+
FROM ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:7471c0fed839ffc6c3945a7fbe6d1a5cee5a8d7e89189f1ded78d2081bdadacc AS build
22
RUN sudo apt-get update && sudo apt-get install libev-dev capnproto libcapnp-dev m4 pkg-config libsqlite3-dev libgmp-dev -y --no-install-recommends
33
RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni
4-
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 47a1176c71e6b07f26b724409a88340f8bac3a42 && opam update
4+
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 5d3f0d1d655199e596a1e785e69fae8fad78cad3 && opam update
55
COPY --chown=opam ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
66
COPY --chown=opam obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
77
RUN opam pin -yn /src/obuilder/
@@ -11,7 +11,7 @@ ADD --chown=opam . .
1111
RUN opam exec -- dune subst
1212
RUN opam exec -- dune build ./_build/install/default/bin/ocluster-worker
1313

14-
FROM ubuntu:jammy-20221130
14+
FROM ubuntu:noble
1515
RUN apt-get update && apt-get install docker.io libev4 curl gnupg2 git libsqlite3-dev ca-certificates netbase -y --no-install-recommends
1616
WORKDIR /var/lib/ocluster-worker
1717
ENTRYPOINT ["/usr/local/bin/ocluster-worker"]

Dockerfile.worker.alpine

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
FROM ocaml/opam:alpine-3.17-ocaml-4.14@sha256:df87c00eb4b212b8b42e3cbf37b7729507bb398b4bf19c9df0e2d84d1c41e46d AS build
1+
FROM ocaml/opam:alpine-ocaml-4.14@sha256:32dde8d3eaad0bcfacc18cd4c9c940d3c75e08b196a878117f84e9c7e500dea6 AS build
22
RUN sudo apk update && sudo apk add libev capnproto m4 sqlite libgmpxx
33
RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni
4-
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 47a1176c71e6b07f26b724409a88340f8bac3a42 && opam update
4+
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 5d3f0d1d655199e596a1e785e69fae8fad78cad3 && opam update
55
COPY --chown=opam ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
66
COPY --chown=opam obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
77
RUN opam pin -yn /src/obuilder/
@@ -11,7 +11,7 @@ ADD --chown=opam . .
1111
RUN opam exec -- dune subst
1212
RUN opam exec -- dune build ./_build/install/default/bin/ocluster-worker
1313

14-
FROM alpine:3.17
14+
FROM alpine:3.20
1515
RUN apk update && apk add docker libev curl gnupg git sqlite
1616
WORKDIR /var/lib/ocluster-worker
1717
ENTRYPOINT ["/usr/local/bin/ocluster-worker"]

bin/worker.ml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,12 @@ module Obuilder_config = struct
185185
Term.(const Obuilder.Store_spec.to_store $ v)
186186

187187
let v =
188-
let make native_conf docker_conf = function
188+
let make native_conf docker_conf qemu_conf = function
189189
| `Native, store -> Some (Cluster_worker.Obuilder_config.v (`Native native_conf) store)
190+
| `Qemu, store -> Some (Cluster_worker.Obuilder_config.v (`Qemu qemu_conf) store)
190191
| `Docker, store -> Some (Cluster_worker.Obuilder_config.v (`Docker docker_conf) store)
191192
in
192-
Term.(const make $ Obuilder.Native_sandbox.cmdliner $ Obuilder.Docker_sandbox.cmdliner $ cmdliner)
193+
Term.(const make $ Obuilder.Native_sandbox.cmdliner $ Obuilder.Docker_sandbox.cmdliner $ Obuilder.Qemu_sandbox.cmdliner $ cmdliner)
193194
end
194195

195196
let worker_opts_t =

worker/obuilder_build.ml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ module Config = struct
66
type t = {
77
store : Obuilder.Store_spec.store Lwt.t;
88
sandbox_config : [ `Native of Obuilder.Native_sandbox.config
9+
| `Qemu of Obuilder.Qemu_sandbox.config
910
| `Docker of Obuilder.Docker_sandbox.config ]
1011
}
1112

@@ -41,6 +42,11 @@ let create ?(prune_threshold = 30.0) ?(prune_limit = 100) config =
4142
Obuilder.Native_sandbox.create ~state_dir:(Store.state_dir store / "sandbox") conf >|= fun sandbox ->
4243
let builder = Builder.v ~store ~sandbox in
4344
Builder ((module Builder), builder)
45+
| `Qemu conf ->
46+
let module Builder = Obuilder.Builder (Store) (Obuilder.Qemu_sandbox) (Obuilder.Qemu_snapshot) in
47+
Obuilder.Qemu_sandbox.create conf >|= fun sandbox ->
48+
let builder = Builder.v ~store ~sandbox in
49+
Builder ((module Builder), builder)
4450
| `Docker conf ->
4551
let module Builder = Obuilder.Docker_builder (Store) in
4652
Obuilder.Docker_sandbox.create conf >|= fun sandbox ->
@@ -84,8 +90,9 @@ let build t ~switch ~log ~spec ~src_dir ~secrets =
8490
(if t.pruning then Lwt_condition.wait t.cond
8591
else Lwt.return ()) >>= fun () ->
8692
let log = log_to log in
87-
let context = Obuilder.Context.v ~switch ~log ~src_dir ~secrets () in
8893
let Builder ((module Builder), builder) = t.builder in
94+
let shell = Builder.shell builder in
95+
let context = Obuilder.Context.v ~switch ~log ~src_dir ?shell ~secrets () in
8996
Builder.build builder context spec
9097

9198
let healthcheck t =

worker/obuilder_build.mli

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ module Config : sig
44
type t
55

66
val v : [ `Native of Obuilder.Native_sandbox.config
7+
| `Qemu of Obuilder.Qemu_sandbox.config
78
| `Docker of Obuilder.Docker_sandbox.config ]
89
-> Obuilder.Store_spec.store Lwt.t -> t
910
end

0 commit comments

Comments
 (0)