From 4abb24fecaaf73cd5c5082a4e3259748647a61da Mon Sep 17 00:00:00 2001 From: Adam Szkoda Date: Thu, 8 Dec 2022 14:54:51 +0100 Subject: [PATCH] Dockerize services Signed-off-by: Adam Szkoda --- .dockerignore | 1 + docker-compose.yml | 59 ++++++++++++++++++++++++++++++++++++++++ radicle-httpd/Dockerfile | 22 +++++++++++++++ radicle-node/Dockerfile | 22 +++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 .dockerignore create mode 100644 docker-compose.yml create mode 100644 radicle-httpd/Dockerfile create mode 100644 radicle-node/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..eb5a316c --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +target diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..d5e3dcd1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,59 @@ +version: "3.7" +services: + radicle-node: + image: gcr.io/radicle-services/radicle-node:${RADICLE_IMAGE_TAG:-latest} + build: + dockerfile: ./radicle-node/Dockerfile + context: . + environment: + RUST_LOG: debug + init: true + container_name: radicle-node + restart: unless-stopped + networks: + - radicle-services + deploy: + resources: + limits: + memory: 6gb + radicle-httpd: + image: gcr.io/radicle-services/radicle-httpd:${RADICLE_IMAGE_TAG:-latest} + build: + dockerfile: ./radicle-httpd/Dockerfile + context: . + environment: + RUST_LOG: debug + init: true + container_name: radicle-httpd + restart: unless-stopped + networks: + - radicle-services + deploy: + resources: + limits: + memory: 6gb + caddy: + image: caddy:2.4.5 + entrypoint: + - sh + - -euc + - | + cat </etc/caddy/Caddyfile + {$RADICLE_DOMAIN} { + reverse_proxy radicle-httpd:8778 + } + EOF + caddy run --config /etc/caddy/Caddyfile --adapter caddyfile + ports: + - 80:80 + - 443:443 + environment: + RADICLE_DOMAIN: $RADICLE_DOMAIN + container_name: caddy + restart: unless-stopped + networks: + - radicle-services + +networks: + radicle-services: + name: radicle-services diff --git a/radicle-httpd/Dockerfile b/radicle-httpd/Dockerfile new file mode 100644 index 00000000..2a3c1fb6 --- /dev/null +++ b/radicle-httpd/Dockerfile @@ -0,0 +1,22 @@ +# Build +FROM rust:1.65.0-slim@sha256:27349440d16ac15f52e8cae6181999a1b2fc05272d612a358d0e53078fcef88e as build + +RUN apt-get update && apt-get install -y pkg-config libssl-dev git cmake + +COPY . /app +WORKDIR /app/radicle-httpd + +RUN set -eux; \ + cargo install --locked --path .; \ + objcopy --compress-debug-sections /usr/local/cargo/bin/radicle-httpd /usr/local/cargo/bin/radicle-httpd.compressed + +# Run +FROM debian:bullseye-slim@sha256:25f10b4f1ded5341a3ca0a30290ff3cd5639415f0c5a2222d5e7d5dd72952aa1 + +RUN echo deb http://deb.debian.org/debian bullseye-backports main contrib non-free >/etc/apt/sources.list.d/backports.list +RUN apt-get update && apt-get install -y libssl1.1 && apt -t bullseye-backports install --yes git && rm -rf /var/lib/apt/lists/* +COPY --from=build /usr/local/cargo/bin/radicle-httpd.compressed /usr/local/bin/radicle-httpd + +WORKDIR /app + +ENTRYPOINT ["/usr/local/bin/radicle-httpd"] diff --git a/radicle-node/Dockerfile b/radicle-node/Dockerfile new file mode 100644 index 00000000..eb86b4d2 --- /dev/null +++ b/radicle-node/Dockerfile @@ -0,0 +1,22 @@ +# Build +FROM rust:1.65.0-slim@sha256:27349440d16ac15f52e8cae6181999a1b2fc05272d612a358d0e53078fcef88e as build + +RUN apt-get update && apt-get install -y pkg-config libssl-dev git cmake + +COPY . /app +WORKDIR /app/radicle-node + +RUN set -eux; \ + cargo install --locked --path .; \ + objcopy --compress-debug-sections /usr/local/cargo/bin/radicle-node /usr/local/cargo/bin/radicle-node.compressed + +# Run +FROM debian:bullseye-slim@sha256:25f10b4f1ded5341a3ca0a30290ff3cd5639415f0c5a2222d5e7d5dd72952aa1 + +RUN echo deb http://deb.debian.org/debian bullseye-backports main contrib non-free >/etc/apt/sources.list.d/backports.list +RUN apt-get update && apt-get install -y libssl1.1 && apt -t bullseye-backports install --yes git && rm -rf /var/lib/apt/lists/* +COPY --from=build /usr/local/cargo/bin/radicle-node.compressed /usr/local/bin/radicle-node + +WORKDIR /app + +ENTRYPOINT ["/usr/local/bin/radicle-node"]