Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
Add Dockerfiles
Archived did:key:z6Mkw3us...VYHE opened 1 year ago
4 files changed +94 -0 abf89438 1823f403
added build-hub-docker.sh
@@ -0,0 +1,17 @@
+
#!/bin/sh
+

+
# Change env var according your config
+
# USER= your user account on hub.docker.com
+
export USER=fredix
+
# RADICLE_IMAGE_TAG= version release when you build
+
export RADICLE_IMAGE_TAG=1.0.0-rc.7
+

+
export rev_version="$(git rev-parse --short HEAD)"
+
#export rad_version="$(build/version)"
+
export rad_version=$RADICLE_IMAGE_TAG
+
export epoch_timestamp=$(git log -1 --pretty=%ct)
+

+
docker compose -f docker-compose-hub-docker.yml build
+

+
docker push $USER/radicle-node:$RADICLE_IMAGE_TAG
+
docker push $USER/radicle-httpd:$RADICLE_IMAGE_TAG
added docker-compose-hub-docker.yml
@@ -0,0 +1,21 @@
+
version: "3.7"
+
services:
+
  radicle-node:
+
    image: ${USER}/radicle-node:${RADICLE_IMAGE_TAG:-latest}
+
    command: ${RADICLE_NODE_OPTIONS}
+
    build:
+
      dockerfile: ./radicle-node/Dockerfile
+
      context: .
+
      args:
+
           rev: ${rev_version}
+
           version: ${rad_version}
+
           epoch: ${epoch_timestamp}
+
  radicle-httpd:
+
    image: ${USER}/radicle-httpd:${RADICLE_IMAGE_TAG:-latest}
+
    build:
+
      dockerfile: ./radicle-httpd/Dockerfile
+
      context: .
+
      args:
+
           rev: ${rev_version}
+
           version: ${rad_version}
+
           epoch: ${epoch_timestamp}
added radicle-httpd/Dockerfile
@@ -0,0 +1,28 @@
+
# Build
+
FROM rust:alpine as build
+
RUN apk add --no-cache musl-dev
+
COPY . /workdir
+
RUN rustup target add x86_64-unknown-linux-musl
+
WORKDIR /workdir/radicle-httpd
+
ARG rev
+
ARG version
+
ENV GIT_HEAD=$rev
+
ENV RADICLE_VERSION=$version
+
ENV SOURCE_DATE_EPOCH=$epoch
+
ENV GIT_COMMIT_TIME=$epoch
+
RUN RUSTFLAGS=-Cforce-frame-pointers=yes \
+
  cargo build \
+
    --profile=container \
+
    --target=x86_64-unknown-linux-musl
+
RUN objcopy \
+
  --compress-debug-sections \
+
  /workdir/target/x86_64-unknown-linux-musl/container/radicle-httpd \
+
  /workdir/target/x86_64-unknown-linux-musl/container/radicle-httpd.compressed
+
# Run
+
FROM alpine
+
RUN apk add git
+
COPY --from=build \
+
  /workdir/target/x86_64-unknown-linux-musl/container/radicle-httpd.compressed \
+
  /usr/local/bin/radicle-httpd
+
WORKDIR /app
+
ENTRYPOINT ["/usr/local/bin/radicle-httpd", "--listen", "0.0.0.0:8080"]
added radicle-node/Dockerfile
@@ -0,0 +1,28 @@
+
# Build
+
FROM rust:alpine as build
+
RUN apk add --no-cache musl-dev
+
COPY . /workdir
+
RUN rustup target add x86_64-unknown-linux-musl
+
WORKDIR /workdir/radicle-node
+
ARG rev
+
ARG version
+
ENV GIT_HEAD=$rev
+
ENV RADICLE_VERSION=$version
+
ENV SOURCE_DATE_EPOCH=$epoch
+
ENV GIT_COMMIT_TIME=$epoch
+
RUN RUSTFLAGS=-Cforce-frame-pointers=yes \
+
  cargo build \
+
    --profile=container \
+
    --target=x86_64-unknown-linux-musl
+
RUN objcopy \
+
  --compress-debug-sections \
+
  /workdir/target/x86_64-unknown-linux-musl/container/radicle-node \
+
  /workdir/target/x86_64-unknown-linux-musl/container/radicle-node.compressed
+
# Run
+
FROM alpine
+
RUN apk add git
+
COPY --from=build \
+
  /workdir/target/x86_64-unknown-linux-musl/container/radicle-node.compressed \
+
  /usr/local/bin/radicle-node
+
WORKDIR /app
+
ENTRYPOINT ["/usr/local/bin/radicle-node", "--listen", "0.0.0.0:8080"]