mirror of
https://github.com/andrewyng/openworker.git
synced 2026-11-03 21:06:51 +00:00
26 lines
2.0 KiB
Docker
26 lines
2.0 KiB
Docker
# syntax=docker/dockerfile:1
|
|
# Local qualification only. Contains deterministic fixtures, never a production image.
|
|
FROM rust:1.96-bookworm@sha256:a339861ae23e9abb272cea45dfafde21760d2ce6577a70f8a926153677902663 AS test
|
|
ENV RUSTUP_TOOLCHAIN=1.96.1 CARGO_BUILD_JOBS=2 CARGO_PROFILE_RELEASE_LTO=false
|
|
WORKDIR /src/harness
|
|
COPY harness/ ./
|
|
COPY deploy/service/guard/ /src/deploy/service/guard/
|
|
COPY deploy/service/platform/ /src/deploy/service/platform/
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry --mount=type=cache,target=/src/harness/target \
|
|
cargo test --locked --release -p openworker-runtime -p openworker-telemetry -p openworker-observability -p openworker-server-reference --all-features --tests -- --test-threads=2
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry --mount=type=cache,target=/src/harness/target \
|
|
cargo test --locked --release -p openworker-store-postgres -p openworker-telemetry -p openworker-server-reference --all-features --test worker_recovery --test recording_queries --no-run --message-format=json > /tmp/qualification-artifacts.jsonl && \
|
|
mkdir /out && cp target/release/pg-worker-fixture /out/ && \
|
|
fixture_exe="$(sed -n '/"name":"worker_recovery"/s/.*"executable":"\([^" ]*\)".*/\1/p' /tmp/qualification-artifacts.jsonl)" && \
|
|
test -x "$fixture_exe" && cp "$fixture_exe" /out/worker-recovery && \
|
|
query_exe="$(sed -n '/"name":"recording_queries"/s/.*"executable":"\([^" ]*\)".*/\1/p' /tmp/qualification-artifacts.jsonl)" && \
|
|
test -x "$query_exe" && cp "$query_exe" /out/recording-queries && \
|
|
cp target/release/openworker-server-reference /out/
|
|
FROM rust:1.96-bookworm@sha256:a339861ae23e9abb272cea45dfafde21760d2ce6577a70f8a926153677902663
|
|
COPY --from=test /out/ /out/
|
|
# Rust's test binary embeds CARGO_BIN_EXE as this absolute path.
|
|
COPY --from=test /out/pg-worker-fixture /src/harness/target/release/pg-worker-fixture
|
|
COPY --from=test /out/openworker-server-reference /opt/openworker/openworker-server-reference
|
|
COPY deploy/service/entrypoint.sh /opt/openworker/entrypoint.sh
|
|
ENTRYPOINT ["/out/worker-recovery"]
|