Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 30 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,24 +1,44 @@
FROM ocaml/opam:debian-12-ocaml-4.14@sha256:650f6b9780c41f4ab594930957aa25012c60114d97638686678eb6979aa7df87 AS build
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
RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 76d09264e920a27527de605cc64ef1d28ec353cd && opam update
COPY --chown=opam ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
COPY --chown=opam obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
# syntax=docker/dockerfile:1
FROM ocaml/opam:debian-12-ocaml-4.14@sha256:d8ea2bf1648deabf8c3f31b9f2b8bbe279e4b02a9b2905f0abe6d5bc07144d85 AS build
RUN sudo ln -sf /usr/bin/opam-2.3 /usr/bin/opam && opam init --reinit -ni
RUN sudo rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' | sudo tee /etc/apt/apt.conf.d/keep-cache
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo apt update && sudo apt-get --no-install-recommends install -y \
capnproto \
libcapnp-dev \
libev-dev \
libgmp-dev \
libsqlite3-dev \
m4 \
pkg-config
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 94514fa0d0e38616b994c0cd54c1623fd40eb357 && opam update
COPY --chown=opam --link ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
COPY --chown=opam --link obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
RUN opam pin -yn /src/obuilder/
WORKDIR /src
RUN opam install -y --deps-only .
RUN --mount=type=cache,target=/home/opam/.opam/download-cache,sharing=locked,uid=1000,gid=1000 \
opam install -y --deps-only .
ADD --chown=opam . .
RUN opam exec -- dune subst
RUN opam exec -- dune build \
./_build/install/default/bin/ocluster-scheduler \
./_build/install/default/bin/ocluster-admin

FROM debian:12
RUN apt-get update && apt-get install libev4 libsqlite3-0 -y --no-install-recommends
RUN apt-get install ca-certificates -y # https://github.com/mirage/ocaml-conduit/issues/388
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt update && apt-get --no-install-recommends install -y \
libev4 \
libsqlite3-0
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt update && apt-get --no-install-recommends install -y \
ca-certificates # https://github.com/mirage/ocaml-conduit/issues/388
WORKDIR /var/lib/ocluster-scheduler
ENTRYPOINT ["/usr/local/bin/ocluster-scheduler"]
COPY --from=build \
COPY --from=build --link \
/src/_build/install/default/bin/ocluster-scheduler \
/src/_build/install/default/bin/ocluster-admin \
/usr/local/bin/
43 changes: 33 additions & 10 deletions Dockerfile.worker
Original file line number Diff line number Diff line change
@@ -1,19 +1,42 @@
FROM ocaml/opam:ubuntu-22.04-ocaml-4.14@sha256:41ce765f59ecde9d8525ec58e0da7cd1317f3798d2c4951186aeef2ce804fad5 AS build
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
RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 47a1176c71e6b07f26b724409a88340f8bac3a42 && opam update
COPY --chown=opam ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
COPY --chown=opam obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
# syntax=docker/dockerfile:1
FROM ocaml/opam:ubuntu-24.04-ocaml-4.14@sha256:2d1cbef1dc7c5573385f4ee837af6875deae9d7af5aea10565a130fa1ec7ec65 AS build
RUN sudo ln -sf /usr/bin/opam-2.3 /usr/bin/opam && opam init --reinit -ni
RUN sudo rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' | sudo tee /etc/apt/apt.conf.d/keep-cache
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo apt update && sudo apt-get --no-install-recommends install -y \
capnproto \
libcapnp-dev \
libev-dev \
libgmp-dev \
libsqlite3-dev \
m4 \
pkg-config
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 94514fa0d0e38616b994c0cd54c1623fd40eb357 && opam update
COPY --chown=opam --link ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
COPY --chown=opam --link obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
RUN opam pin -yn /src/obuilder/
WORKDIR /src
RUN opam install -y --deps-only .
RUN --mount=type=cache,target=/home/opam/.opam/download-cache,sharing=locked,uid=1000,gid=1000 \
opam install -y --deps-only .
ADD --chown=opam . .
RUN opam exec -- dune subst
RUN opam exec -- dune build ./_build/install/default/bin/ocluster-worker

FROM ubuntu:jammy-20221130
RUN apt-get update && apt-get install docker.io libev4 curl gnupg2 git libsqlite3-dev ca-certificates netbase -y --no-install-recommends
FROM ubuntu:24.04
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt update && apt-get --no-install-recommends install -y \
ca-certificates \
curl \
docker.io \
git \
gnupg2 \
libev4 \
libsqlite3-dev \
netbase
WORKDIR /var/lib/ocluster-worker
ENTRYPOINT ["/usr/local/bin/ocluster-worker"]
ENV PROGRESS_NO_TRUNC=1
COPY --from=build /src/_build/install/default/bin/ocluster-worker /usr/local/bin/
COPY --from=build --link /src/_build/install/default/bin/ocluster-worker /usr/local/bin/
37 changes: 27 additions & 10 deletions Dockerfile.worker.alpine
Original file line number Diff line number Diff line change
@@ -1,19 +1,36 @@
FROM ocaml/opam:alpine-3.17-ocaml-4.14@sha256:df87c00eb4b212b8b42e3cbf37b7729507bb398b4bf19c9df0e2d84d1c41e46d AS build
RUN sudo apk update && sudo apk add libev capnproto m4 sqlite libgmpxx
RUN sudo ln -f /usr/bin/opam-2.1 /usr/bin/opam && opam init --reinit -ni
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 47a1176c71e6b07f26b724409a88340f8bac3a42 && opam update
COPY --chown=opam ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
COPY --chown=opam obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
# syntax=docker/dockerfile:1
FROM ocaml/opam:alpine-3.21-ocaml-4.14@sha356:fa88fe4bd0452aa7ef1b57e66f4bf750518f4bcbb04dd97e2551f56b97c53ce3 AS build
RUN sudo ln -sf /usr/bin/opam-2.3 /usr/bin/opam && opam init --reinit -ni
RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \
sudo ln -s /var/cache/apk /etc/apk/cache && \
sudo apk -U upgrade && sudo apk add \
libev \
capnproto \
m4 \
sqlite \
libgmpxx
RUN cd ~/opam-repository && git fetch -q origin master && git reset --hard 94514fa0d0e38616b994c0cd54c1623fd40eb357 && opam update
COPY --chown=opam --link ocluster-api.opam ocluster-worker.opam ocluster.opam /src/
COPY --chown=opam --link obuilder/obuilder.opam obuilder/obuilder-spec.opam /src/obuilder/
RUN opam pin -yn /src/obuilder/
WORKDIR /src
RUN opam install -y --deps-only .
RUN --mount=type=cache,target=/home/opam/.opam/download-cache,sharing=locked,uid=1000,gid=1000 \
opam install -y --deps-only .
ADD --chown=opam . .
RUN opam exec -- dune subst
RUN opam exec -- dune build ./_build/install/default/bin/ocluster-worker

FROM alpine:3.17
RUN apk update && apk add docker libev curl gnupg git sqlite
FROM alpine:3.21
RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \
ln -s /var/cache/apk /etc/apk/cache && \
apk -U upgrade && apk add \
docker \
libev \
curl \
gnupg \
git \
sqlite
WORKDIR /var/lib/ocluster-worker
ENTRYPOINT ["/usr/local/bin/ocluster-worker"]
ENV PROGRESS_NO_TRUNC=1
COPY --from=build /src/_build/install/default/bin/ocluster-worker /usr/local/bin/
COPY --from=build --link /src/_build/install/default/bin/ocluster-worker /usr/local/bin/
6 changes: 3 additions & 3 deletions current_ocluster.opam
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@ homepage: "https://github.com/ocurrent/ocluster"
doc: "https://ocurrent.github.io/ocluster/"
bug-reports: "https://github.com/ocurrent/ocluster/issues"
depends: [
"dune" {>= "3.7"}
"dune" {>= "3.17"}
"ocluster-api" {= version}
"ocaml" {>= "4.14.1"}
"ocaml" {>= "4.14"}
"capnp-rpc-unix" {>= "1.2.3"}
"current" {>= "0.6.4"}
"current_git" {>= "0.6.4"}
"duration"
"fmt"
"logs"
"lwt" {>= "5.6.1"}
"lwt" {>= "5.9.0"}
"ppx_deriving"
"ppx_deriving_yojson"
"prometheus" {>= "1.2"}
Expand Down
20 changes: 10 additions & 10 deletions dune-project
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(lang dune 3.7)
(lang dune 3.17)
(name ocluster)
(formatting disabled)
(generate_opam_files true)
Expand All @@ -22,10 +22,10 @@
(synopsis "Cap'n Proto API for OCluster")
(description "OCaml bindings for the OCluster Cap'n Proto API.")
(depends
(ocaml (>= 4.14.1))
(ocaml (>= 4.14))
(capnp-rpc-lwt (>= 1.2.3))
fmt
(lwt (>= 5.6.1))
(lwt (>= 5.9.0))
ppx_deriving
ppx_deriving_yojson))

Expand All @@ -35,14 +35,14 @@
(description "OCluster library for defining workers")
(depends
(ocluster-api (= :version))
(ocaml (>= 4.14.1))
(ocaml (>= 4.14))
(capnp-rpc-lwt (>= 1.2.3))
(cohttp-lwt-unix (>= 4.0))
(digestif (>= 0.8))
(extunix (>= 0.4.1))
fpath
logs
(lwt (>= 5.6.1))
(lwt (>= 5.9.0))
(obuilder (>= 0.5.1))
(prometheus-app (>= 1.2))))

Expand All @@ -53,18 +53,18 @@
(depends
(ocluster-api (= :version))
(ocluster-worker (= :version))
(ocaml (>= 4.14.1))
(ocaml (>= 4.14))
(capnp-rpc-lwt (>= 1.2.3))
(capnp-rpc-net (>= 1.2.3))
(capnp-rpc-unix (>= 1.2.3))
(cmdliner (>= 1.2.0))
(cmdliner (>= 1.3.0))
(conf-libev (<> :os "win32"))
(digestif (>= 0.8))
dune-build-info
fmt
fpath
logs
(lwt (>= 5.6.1))
(lwt (>= 5.9.0))
lwt-dllist
(mirage-crypto (>= 0.8.5))
(obuilder (>= 0.5.1))
Expand All @@ -88,14 +88,14 @@
"Creates a stage in an OCurrent pipeline for submitting jobs to OCluster.")
(depends
(ocluster-api (= :version))
(ocaml (>= 4.14.1))
(ocaml (>= 4.14))
(capnp-rpc-unix (>= 1.2.3))
(current (>= 0.6.4))
(current_git (>= 0.6.4))
duration
fmt
logs
(lwt (>= 5.6.1))
(lwt (>= 5.9.0))
ppx_deriving
ppx_deriving_yojson
(prometheus (>= 1.2))
Expand Down
6 changes: 3 additions & 3 deletions ocluster-api.opam
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ homepage: "https://github.com/ocurrent/ocluster"
doc: "https://ocurrent.github.io/ocluster/"
bug-reports: "https://github.com/ocurrent/ocluster/issues"
depends: [
"dune" {>= "3.7"}
"ocaml" {>= "4.14.1"}
"dune" {>= "3.17"}
"ocaml" {>= "4.14"}
"capnp-rpc-lwt" {>= "1.2.3"}
"fmt"
"lwt" {>= "5.6.1"}
"lwt" {>= "5.9.0"}
"ppx_deriving"
"ppx_deriving_yojson"
"odoc" {with-doc}
Expand Down
6 changes: 3 additions & 3 deletions ocluster-worker.opam
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ homepage: "https://github.com/ocurrent/ocluster"
doc: "https://ocurrent.github.io/ocluster/"
bug-reports: "https://github.com/ocurrent/ocluster/issues"
depends: [
"dune" {>= "3.7"}
"dune" {>= "3.17"}
"ocluster-api" {= version}
"ocaml" {>= "4.14.1"}
"ocaml" {>= "4.14"}
"capnp-rpc-lwt" {>= "1.2.3"}
"cohttp-lwt-unix" {>= "4.0"}
"digestif" {>= "0.8"}
"extunix" {>= "0.4.1"}
"fpath"
"logs"
"lwt" {>= "5.6.1"}
"lwt" {>= "5.9.0"}
"obuilder" {>= "0.5.1"}
"prometheus-app" {>= "1.2"}
"odoc" {with-doc}
Expand Down
8 changes: 4 additions & 4 deletions ocluster.opam
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,21 @@ homepage: "https://github.com/ocurrent/ocluster"
doc: "https://ocurrent.github.io/ocluster/"
bug-reports: "https://github.com/ocurrent/ocluster/issues"
depends: [
"dune" {>= "3.7"}
"dune" {>= "3.17"}
"ocluster-api" {= version}
"ocluster-worker" {= version}
"ocaml" {>= "4.14.1"}
"ocaml" {>= "4.14"}
"capnp-rpc-lwt" {>= "1.2.3"}
"capnp-rpc-net" {>= "1.2.3"}
"capnp-rpc-unix" {>= "1.2.3"}
"cmdliner" {>= "1.2.0"}
"cmdliner" {>= "1.3.0"}
"conf-libev" {os != "win32"}
"digestif" {>= "0.8"}
"dune-build-info"
"fmt"
"fpath"
"logs"
"lwt" {>= "5.6.1"}
"lwt" {>= "5.9.0"}
"lwt-dllist"
"mirage-crypto" {>= "0.8.5"}
"obuilder" {>= "0.5.1"}
Expand Down