Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 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
26 changes: 11 additions & 15 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,21 @@ jobs:
run: cargo doc
janus_server_docker:
runs-on: ubuntu-latest
env:
DOCKER_BUILDKIT: 1
steps:
- uses: actions/checkout@v3
- env:
DOCKER_BUILDKIT: 1
run: docker build --tag janus_server .
- env:
DOCKER_BUILDKIT: 1
run: docker build --tag janus_aggregation_job_creator --build-arg BINARY=aggregation_job_creator .
- env:
DOCKER_BUILDKIT: 1
run: docker build --tag janus_aggregation_job_driver --build-arg BINARY=aggregation_job_driver .
- env:
DOCKER_BUILDKIT: 1
run: docker build --tag janus_collect_job_driver --build-arg BINARY=collect_job_driver .
- env:
DOCKER_BUILDKIT: 1
run: docker build --tag janus_cli --build-arg BINARY=janus_cli .
- run: docker build --tag janus_server .
- run: docker build --tag janus_aggregation_job_creator --build-arg BINARY=aggregation_job_creator .
- run: docker build --tag janus_aggregation_job_driver --build-arg BINARY=aggregation_job_driver .
- run: docker build --tag janus_collect_job_driver --build-arg BINARY=collect_job_driver .
- run: docker build --tag janus_cli --build-arg BINARY=janus_cli .
- run: docker run --rm janus_server --help
- run: docker run --rm janus_aggregation_job_creator --help
- run: docker run --rm janus_aggregation_job_driver --help
- run: docker run --rm janus_collect_job_driver --help
- run: docker run --rm janus_cli --help

- run: docker build --tag janus_interop_client --build-arg BINARY=janus_interop_client -f Dockerfile.interop .
- run: docker build --tag janus_interop_aggregator -f Dockerfile.interop_aggregator .
- run: docker build --tag janus_interop_collector --build-arg BINARY=janus_interop_collector -f Dockerfile.interop .
21 changes: 21 additions & 0 deletions .github/workflows/push-docker-images-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,24 @@ jobs:
.
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_cli:latest
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_cli:${{ steps.get_version.outputs.VERSION }}

- run: |-
docker build --tag us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_client:latest \
--tag us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_client:${{ steps.get_version.outputs.VERSION }} \
--build-arg BINARY=janus_interop_client \
-f Dockerfile.interop .
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_client:latest
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_client:${{ steps.get_version.outputs.VERSION }}
- run: |-
docker build --tag us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_aggregator:latest \
--tag us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_aggregator:${{ steps.get_version.outputs.VERSION }} \
-f Dockerfile.interop_aggregator .
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_aggregator:latest
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_aggregator:${{ steps.get_version.outputs.VERSION }}
- run: |-
docker build --tag us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_collector:latest \
--tag us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_collector:${{ steps.get_version.outputs.VERSION }} \
--build-arg BINARY=janus_interop_collector \
-f Dockerfile.interop .
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_collector:latest
- run: docker push us-west2-docker.pkg.dev/janus-artifacts/janus/janus_interop_collector:${{ steps.get_version.outputs.VERSION }}
28 changes: 28 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[workspace]
members = ["janus_core", "janus_client", "janus_server", "monolithic_integration_test"]
members = ["interop_binaries", "janus_core", "janus_client", "janus_server", "monolithic_integration_test"]
resolver = "2"
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ COPY janus_core /src/janus_core
COPY janus_client /src/janus_client
COPY janus_server /src/janus_server
COPY monolithic_integration_test /src/monolithic_integration_test
COPY interop_binaries /src/interop_binaries
COPY db/schema.sql /src/db/schema.sql
RUN --mount=type=cache,target=/usr/local/cargo/registry --mount=type=cache,target=/src/target cargo build --release --bin $BINARY --features=prometheus && cp /src/target/release/$BINARY /$BINARY

Expand Down
26 changes: 26 additions & 0 deletions Dockerfile.interop
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
FROM rust:1.62.1-alpine as builder
ARG BINARY
RUN apk add libc-dev

WORKDIR /src
COPY Cargo.toml /src/Cargo.toml
COPY Cargo.lock /src/Cargo.lock
COPY janus_core /src/janus_core
COPY janus_client /src/janus_client
COPY janus_server /src/janus_server
COPY monolithic_integration_test /src/monolithic_integration_test
COPY interop_binaries /src/interop_binaries
COPY db/schema.sql /src/db/schema.sql
RUN --mount=type=cache,target=/usr/local/cargo/registry --mount=type=cache,target=/src/target cargo build --release --bin $BINARY && cp /src/target/release/$BINARY /$BINARY

FROM alpine:3.16.1
ARG BINARY
RUN mkdir /logs
COPY --from=builder /src/db/schema.sql /db/schema.sql
COPY --from=builder /$BINARY /$BINARY
EXPOSE 8080
# Store the build argument in an environment variable so we can reference it
# from the ENTRYPOINT at runtime.
ENV BINARY=$BINARY
ENV RUST_LOG=info
ENTRYPOINT ["/bin/sh", "-c", "exec /$BINARY \"$@\" >/logs/stdout.log 2>/logs/stderr.log"]
22 changes: 22 additions & 0 deletions Dockerfile.interop_aggregator
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FROM rust:1.62.1-alpine as builder
RUN apk add libc-dev

WORKDIR /src
COPY Cargo.toml /src/Cargo.toml
COPY Cargo.lock /src/Cargo.lock
COPY janus_core /src/janus_core
COPY janus_client /src/janus_client
COPY janus_server /src/janus_server
COPY monolithic_integration_test /src/monolithic_integration_test
COPY interop_binaries /src/interop_binaries
COPY db/schema.sql /src/db/schema.sql
RUN --mount=type=cache,target=/usr/local/cargo/registry --mount=type=cache,target=/src/target cargo build --release --bin janus_interop_aggregator && cp /src/target/release/janus_interop_aggregator /janus_interop_aggregator

FROM postgres:14-bullseye
RUN mkdir /logs
RUN apt-get update && apt-get install -y supervisor
COPY interop_binaries/supervisord.conf /supervisord.conf
COPY --from=builder /src/db/schema.sql /db/schema.sql
COPY --from=builder /janus_interop_aggregator /janus_interop_aggregator
EXPOSE 8080
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
34 changes: 34 additions & 0 deletions interop_binaries/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
[package]
name = "interop_binaries"
version = "0.1.0"
edition = "2021"
license = "MPL-2.0"
rust-version = "1.60"
publish = false

[dependencies]
anyhow = "1"
base64 = "0.13.0"
clap = "3.2.16"
janus_client = { path = "../janus_client" }
janus_core = { path = "../janus_core" }
janus_server = { path = "../janus_server" }
opentelemetry = { version = "0.17", features = ["metrics"] }
prio = "0.8.2"
rand = "0.8"
reqwest = { version = "0.11.4", default-features = false, features = ["rustls-tls"] }
ring = "0.16.20"
serde = { version = "1.0.141", features = ["derive"] }
serde_json = "1.0.82"
tokio = { version = "^1.20", features = ["full", "tracing"] }
tracing = "0.1.36"
tracing-log = "0.1.3"
tracing-subscriber = { version = "0.3", features = ["std", "env-filter", "fmt"] }
url = { version = "2.2.2", features = ["serde"] }
warp = "^0.3"

[dev-dependencies]
lazy_static = "1"
portpicker = "0.1"
reqwest = { version = "0.11.4", default-features = false, features = ["json"] }
testcontainers = "0.14.0"
Loading